随笔分类 - leetcode中等题
摘要:问题描述 https://leetcode.cn/problems/find-first-and-last-position-of-element-in-sorted-array/description/ 解题思路 我们查找元素的第一个和最后一个元素的位置,题目要求logn,所以只能用二分。 我们用
阅读全文
摘要:问题链接 https://leetcode.cn/problems/search-in-rotated-sorted-array/description/ 解题思路 这个题目要求复杂度了。我们不要慌,首先分析一下数据。 也就是说,这个数组是由2个上升子序列组成的。所以,我们如果用传统的二分法,是不太
阅读全文
摘要:问题链接 https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii/description/ 解题思路 买卖股票,本质上就是低价买入,高价卖出。我们可以用模拟法,不断的去找到一个递增的区间,然后去相加。 但这题还可以用贪心做。贪心
阅读全文
摘要:问题链接 https://leetcode.cn/problems/jump-game/description/ 解题思路 对这个题目进行贪心,对于每个格子,我们都可以求出从它可以跳到最远的那个格子。 我们用一个t_maxs变量来保存这个数据。 当我们遍历到某个格子时,发现t_maxs够不到,则证明
阅读全文
摘要:问题链接 https://leetcode.cn/problems/jump-game-ii/ 解题思路 这个题目,乍一看挺难,其实我们想一下就可以知道,我们如果从后往前推,有潜质跳到最后一个数字的格子,且有潜质跳跃次数最短的,应该是所有符合条件的格子中最靠左的。 根据这个结论,我们可以用贪心思想,
阅读全文
摘要:问题描述 https://leetcode.cn/problems/container-with-most-water/description/ 解题思路 首先,我们考虑暴力法。暴力法是O(n的平方). 然后对暴力法进行优化。我们发现了如下规律: 首先要记住,决定能盛多少水的,是短的那个板,而不是长
阅读全文
摘要:问题链接 https://leetcode.cn/problems/decode-string/description/ 解题思路 这题一看就是个典型的递归题目,典型的递归函数的定义就是递归函数的解。 我们首先定义递归函数的参数和返回值。 递归函数的参数显然就是一个字符串,递归函数的返回值是经过计算
阅读全文
摘要:问题链接 https://leetcode.cn/problems/elimination-game/ 解题思路 这题需要推理,和约瑟夫环一样。我暂时不想去深入研究,只想用模拟。 这题其实可以用递归来解,因为他每一层的处理方式几乎一模一样。 我们首先看参数和返回值。我们期望接收到一个数组和一个fla
阅读全文
摘要:问题链接 https://leetcode.cn/problems/different-ways-to-add-parentheses/description/ 解题思路 这个题目是一个典型的递归问题,也是一个典型的分治问题。我们讲过,递归问题的定义就是递归的解。 首先我们考虑这个递归函数的定义,参
阅读全文
摘要:问题链接 https://leetcode.cn/problems/reorder-list/description/ 解题思路 这题其实用list + 双指针模拟。很简单。 但我们要练习的是递归。 这题我本来是想用递归的方式进行模拟,但出了点问题。发现如果这样实现会有循环引用问题。 本着有简单的不
阅读全文
摘要:问题链接 https://leetcode.cn/problems/powx-n/description/ 解题思路 这个题目具有缩小规模的潜质,所以可以用递归来进行解决。 为啥呢?因为幂本质上就是乘法。 2的3次幂,就是2*2*2。所以,我们要做的就是减少乘法的次数。 比如2的10次幂,它其实等于
阅读全文
摘要:题目链接 https://leetcode.cn/problems/swap-nodes-in-pairs/description/ 解题思路 首先这是个递归问题,因为它可以明显的缩小问题规模。既然是递归的问题,那我们按照递归的一般思路来。 首先,我们考虑递归函数的参数和返回值。 因为这个题目和上一
阅读全文
摘要:问题链接 https://leetcode.cn/problems/add-two-numbers/description/ 解题思路 这题是倒着存储的,也要求我们返回一个倒着的链表。 即它需要我们左对齐,相加之后向后进位,但需要我们返回最左侧的结果节点。 看起来这也是个缩小规模的问题。 首先,我们
阅读全文