![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
子翊寒
放开,请让我带你入门
展开
-
动态规划专题:LeetCode 完全平方数
原题链接279. 完全平方数思路这道题跟之前的动态规划有些区别。刷了不少动态规划的题目。大部分的结构,都是类似于这种形式dp[i] = Math.max(min)(dp[i-n]+k, dp[i-m]+k1) + M这种形式,涉及到最大小值,肯定涉及到题目求解的最值问题而且一般绝大多数情况下是,时间复杂度都是O(n)。这次的题目,主要涉及到一些关键点的处理。如果不考虑这些关键点,...原创 2020-03-24 23:14:34 · 162 阅读 · 0 评论 -
动态规划专题:LeetCode 乘积最大子数组
原题链接乘积最大子数组思路刷题得按专题刷,发现这道题很有意思。因为负数的引入,导致推导状态就比较麻烦。看了题解,分别记录最大值和最小值。当遇到负数的时候,最大值将会变为最小,最小将会变为最大。真的很巧妙。算是开拓了一个新的思路。class Solution { public int maxProduct(int[] nums) { int max = Intege...原创 2020-03-24 19:54:15 · 172 阅读 · 0 评论 -
动态规划专题:LeetCode连续数列
LeetCode题目链接面试题 16.17. 连续数列这个题目和最大子数列是一个题目思路用 dp[i] 表示,连续数列的和。当 dp[i-1] 小于0的时候,它如果加上nums[i]的话,肯定比单独的nums[i]小。此时,设置 dp[i] 为 nums[i]。如果它大于0,可以让其尝试继续相加。这里的dp[i]并不是说 i 位置前面连续数列的最大值。实现class Soluti...原创 2020-03-24 15:09:00 · 215 阅读 · 0 评论 -
动态规划专题:LeetCode 按摩师
LeetCode题目面试题 17.16. 按摩师思路为什么要用动态规划在知道如何使用动态规划前,知道何时使用动态规划最重要吧。如果你要知道最后一天的值,取决于第三天做不做,这就是二叉树的结构,一般涉及到两个选择的,画下的话,可以看到有重叠部分,可以考虑动态规划。遇到最值问题的时候,后面的选择取决于前面选择的时候,考虑动态规划。遇到子序列的(可不连续)的时候,考虑动态规划。最重要...原创 2020-03-24 13:39:25 · 212 阅读 · 0 评论 -
3. 无重复字符的最长子串
原题链接3. 无重复字符的最长子串解题思路在谈及重复问题,大概率会使用 hashmap 或者 hashset最长子串,因为是连续的,所以有点想使用滑动窗口的方法滑动窗口在 HashMap 中维护一个表,这个表的作用:记录每个字符最后一次出现的位置索引HashMap 天然是无重复的以abcba举例,在检索到abc的时候,在hashmap中存入,a-0,b-1,c-2。当检...原创 2020-03-23 11:21:04 · 102 阅读 · 0 评论