leetcode
-
946. 验证栈序列
题目 思路 基础知识:Go中栈的基础操作 // 定义栈stack := []int{}// 入栈元素1stack = append(stack,1)// 入栈元素2stack = …
-
53. 最大子数组和
题目:53. 最大子数组和 思路 一般看到题目要求最值问题,就想到动态规划的思路。 动态规划题目套路:1. 明确题目含义,定义dp数组(dp数组定义:一般套路就是看题目的最后一句话…
-
环形链表II
题目:环形链表II 思路 本题的其实在问两个问题: 1.是否存在环; 2.返回环的入口节点,也就是环点;以上图为例,就是2这个节点; 如何判断链表是否存在环? 解题套路如下: 1.…
-
最短无序连续子数组
图文题解仓库地址: https://github.com/gofish2020/leetcode_forever 题目:581. 最短无序连续子数组 思路 题目要求应该不难理解,就…
-
寻找峰值
图文题解仓库地址: https://github.com/gofish2020/leetcode_forever 题目:162. 寻找峰值 思路 题目要求: nums[-1] = …
-
组合总和
题解仓库:https://github.com/gofish2020/leetcode_forever 题目:39. 组合总和 思路 如何理解递归调用? 第一种理解方法:1.明确递…
-
K个一组翻转链表
题目 思路 题目理解的核心:就像一块蛋糕,每次吃的时候,切割出来一小块,剩下的蛋糕不动,当我们吃完了这一小块,继续从剩下的蛋糕中再切割出来一块来吃 K个一组翻转链表,那肯定要先找到…
-
字符串解码
题目:字符串解码 思路 按照题目编码规格:要想解码k[encoded_string] 需要将方括号外面的k记录下来,同时将方括号里面的encoded_string记录下来,然后进行…
-
LRU缓存淘汰算法
题目:LRU缓存 思路 LRU算法类似于体育老师上课点名字排成一排,被点到名字的同学站自动站到第一个位置,其他的同学顺序往后移一位。 Put:新数据插入到链表的头部; Get:每当…
-
数组中第K个最大元素
题目:数组中第K个最大元素 思路 题目要求第k个最大的元素 例如有升序数组 [1,2,3]第1个最大的元素是3【索引值为 2】,第2个最大元素是2【对应的索引值为1】,所以第k个最…
-
有效三角形的个数
题目: 思路 先对整个数组排序 按照两边之和大于第三边的规则;先固定第三边,找满足大于第三边的另外两边 完整代码 func triangleNumber(nums []int) i…
-
比较版本号
题目 思路 解题关键点: 版本号是多个修订号,用 “.”分割组成; 每个修订号的数值会存在前导零【需要忽略前导零】,比如 001和1就是相同值; 版本号长度不一定相同;比如 1.0…
-
合并区间
题目 思路 直接观察区间,相互之间没有任何规律,按照一般的解题方法,将每个区间和其他的区间都一一对比,进行合并。如果我们将区间放入到刻度中区间都是按照【区间左边界】有序的,只需要对…
-
零钱兑换
题目 这是很经典的一道题目,如果题目不好理解,可以先看下这个类比: 可以想象成一个有固定容量的麻袋,现在地上有很多的包裹; 有些包裹可能很大,完全超过麻袋的容量,肯定是塞不进去的;…
-
二叉树右视图
题目 思路 二叉树为分层结构,要想看到每一层的最右边的节点值,按照层序遍历的思想,记录每一层的最后一个节点值即可。 层序遍历也可叫广度优先遍历,二叉树层序遍历代码套路如下: // …