08 2023 档案
摘要:## 题目:[738. 单调递增的数字](https://leetcode.cn/problems/monotone-increasing-digits/) ### 思路: 从前往后找的话,如果改了一个数,那么对这个数之前的判断就不一定会成立了(eg.110) 从后往前找的话,会不断更新前面的数,后
阅读全文
摘要:## 题目:[435. 无重叠区间](https://leetcode.cn/problems/non-overlapping-intervals/) ### 思路: 移除最少就是保留最多,和昨天最后一个题一样就是选出最多的不重叠区间。 记住一点——右边界越小,后续可以选取的范围就越大,可能选取到的
阅读全文
摘要:## 题目:[860. 柠檬水找零](https://leetcode.cn/problems/lemonade-change/) ### 思路: 收到钱三种情况: 1. 5刀:直接收起来就可以了,不需要找钱 2. 10刀:收到10刀,需要找5刀,如果没有5刀,就返回false,否则5刀-1 3.
阅读全文
摘要:## 题目:[1005.K次取反后最大化的数组和](https://leetcode.cn/problems/maximize-sum-of-array-after-k-negations/) ### 思路: 思路是: 1. 先把负数从小到大变成正数(即绝对值由大到小) 2. 如果还需要变化(k>0
阅读全文
摘要:## 题目:[122. 买卖股票的最佳时机 II](https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii/) ### 思路: 假如第 0 天买入,第 3 天卖出,那么利润为:prices[3] - prices[0]。 相当于
阅读全文
摘要:## 题目:[455. 分发饼干](https://leetcode.cn/problems/assign-cookies/ "455. 分发饼干") ### 思路: 贪心,思路是尽量先给胃口值小的分,饼干也是从小的开始分: 1. 如果饼干满足了胃口值,结果+1换下一个人,下一个饼干 2. 如果饼干
阅读全文
摘要:## 题目:[332. 重新安排行程](https://leetcode.cn/problems/reconstruct-itinerary/) ### 思路: 其实这里已经是图的部分了,回溯应该也可以。Hierholzer算法解决欧拉问题 ### 代码: ```go func findItiner
阅读全文
摘要:## 题目:[491. 递增子序列](https://leetcode.cn/problems/non-decreasing-subsequences/ "491. 递增子序列") ### 思路: 核心问题——同层去重,这一题不能够重新排序因此不可以用`i > index && nums[i] ==
阅读全文
摘要:## 题目:[93. 复原 IP 地址](https://leetcode.cn/problems/restore-ip-addresses/ "93. 复原 IP 地址") ### 思路: 1. 函数参数:参数就一个stirng,path先收集ip地址的四个部分,最后存入res中时拼接成一个str
阅读全文
摘要:## 题目:[39. 组合总和](https://leetcode.cn/problems/combination-sum/description/ "39. 组合总和") ### 思路: 一样的递归套路: 1. 函数参数:因为要求和,所以有一个当前和的参数;另外因为**要保证没有重复的结果**,所
阅读全文
摘要:## 题目:[216. 组合总和 III](https://leetcode.cn/problems/combination-sum-iii/) ### 思路: 多加一个记录和的参数,还有一个起始位置的参数(不重复就得加) 结束条件是个数到了k: 1. 如果此时sum == n那就说明答案正确 2.
阅读全文
摘要:## 题目:[77. 组合](https://leetcode.cn/problems/combinations/) ### 思路: 回溯就是dfs的一个特殊情况也就是递归的一种情况,值得注意的一点: 要记得深拷贝,不然最后全是空 ### 代码: ```go var res [][]int var
阅读全文
摘要:## 题目:[669. 修剪二叉搜索树](https://leetcode.cn/problems/trim-a-binary-search-tree/) ### 思路: 遍历到的值小于最小值,说明左子树里的所有节点都小于最小值,舍弃左子树。 遍历到的值大于最大值,说明右子树里的所有节点都大于最大值
阅读全文
摘要:## 题目:[235. 二叉搜索树的最近公共祖先](https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-search-tree/) ### 思路: BST和普通二叉树不同的一点是可以根据特性来找最近公共祖先,只要找到第一个值
阅读全文
摘要:## 题目:[530. 二叉搜索树的最小绝对差](https://leetcode.cn/problems/minimum-absolute-difference-in-bst/) ### 思路: 一个关键问题——BST的中序遍历是由小到大的顺序,也就是说记录遍历的前一个节点,每次比较当前节点-前一
阅读全文
摘要:## 题目:[654. 最大二叉树](https://leetcode.cn/problems/maximum-binary-tree/) ### 思路: 和前中序构造树差不多的方法,以前是返回值,现在是返回树 ### 代码: ```go /** * Definition for a binary
阅读全文
摘要:## 题目:[513. 找树左下角的值](https://leetcode.cn/problems/find-bottom-left-tree-value/) ### 思路: 层序遍历是最好的选择了,先放右节点,再放左节点最后一个元素就是最左侧的节点。 说白了层序遍历就是广度优先搜索BFS。 ###
阅读全文
摘要:## 题目:[110. 平衡二叉树](https://leetcode.cn/problems/balanced-binary-tree/) ### 思路:  ### 思路: 本题可以使用前序(中左右),也可以使用后序遍历(左右中),使用前序求的就是深度,使用后序求的是高度。 - 二叉树节点的深
阅读全文
摘要:## 题目:[102. 二叉树的层序遍历](https://leetcode.cn/problems/binary-tree-level-order-traversal/) ### 思路: 先把根放进去,然后每次都是左右就可以了。 记录一个深度,当`len(res) == deepth`的时候就说明
阅读全文
摘要:今天的题目就是二叉树的前中后序遍历,目前只写了递归方法,之后再补迭代方法。 ## 题目:[144. 二叉树的前序遍历](https://leetcode.cn/problems/binary-tree-preorder-traversal/) ### 思路: 前序遍历:根-左-右 ### 代码1:
阅读全文
摘要:## 题目:[239. 滑动窗口最大值](https://leetcode.cn/problems/sliding-window-maximum/) ### 思路:  ### 思路: 很简单的一个栈的题目: 1. 如果是左括号就存 2. 如果是右括号就和栈顶的匹配 1. 匹配失败就返回false 2. 匹配成功就删除栈顶元素 3.
阅读全文
摘要:## 题目:[232. 用栈实现队列](https://leetcode.cn/problems/implement-queue-using-stacks/) ### 思路: 因为go没有栈和队列的类型,直接自己写就行了。 比较简单的实现,具体看代码中的注释。 ### 代码: ```go type
阅读全文
摘要:## 题目:[28. 找出字符串中第一个匹配项的下标](https://leetcode.cn/problems/find-the-index-of-the-first-occurrence-in-a-string/) ### 思路: 说白了就是匹配字符串,朴素就是暴力以每一个位置为起点都跑一遍。
阅读全文
摘要:## 题目:[344. 反转字符串](https://leetcode.cn/problems/reverse-string/) ### 思路: 每次把最前面和最后面的交换位置即可 `strings`库里没有反转的方法 ——这个反转是之后几个题的一个基础 ### 代码: 双指针调换位置 ```go
阅读全文
摘要:## 题目:[454. 四数相加 II](https://leetcode.cn/problems/4sum-ii/) ### 思路: 首先,因为下标不同,因此相同的序列可能会出现很多次。 A + B + C + D = 0,那么当知道保存了A+B的和之后,就看有没有A + B = 0 - C -
阅读全文