摘要: 剑指 Offer 22. 链表中倒数第k个节点 一个比较简单的办法是先遍历一趟,得到长度l后,发现如下关系,倒数第1个节点为第l - 1个节点,倒数第2个节点为第l - 2个节点,故返回第l - k个节点即可。 正着数也就是l - k - 1索引位置处,故而遍历条件为i <= l - k - 1或i 阅读全文
posted @ 2022-01-25 15:29 NullPointer_C 阅读(48) 评论(0) 推荐(0)
摘要: 剑指 Offer 18. 删除链表的节点 一开始还以为是那题,给定了结点,删除该节点的题目,但是后来发现两题有些不同,那题说明了要删除的节点一定不是尾节点,而这里没有保证,所以使用双指针即可。 pre值要删除节点的前一个节点,cur指向要删除的节点。找到要删除的节点后,将前一个节点的next指针指向 阅读全文
posted @ 2022-01-25 15:12 NullPointer_C 阅读(31) 评论(0) 推荐(0)
摘要: 剑指 Offer 48. 最长不含重复字符的子字符串 对于字符串区间类题目,一般可以考虑使用滑动窗口来求解问题。 在滑动窗口中一般设置l和r两个指针,l指针指向窗口的左边缘,r指针指向窗口的右边缘,整个窗口的大小为r - l + 1。 在本题中,再用一个map或者set来查看窗口是否有重复数字,这里 阅读全文
posted @ 2022-01-25 14:51 NullPointer_C 阅读(40) 评论(0) 推荐(0)
摘要: 剑指 Offer 46. 把数字翻译成字符串 写动态规划一定一定要记得画图, 结合数组的规律的示例才能更好的理解一些。 本题要求的是我们对于一个数字,且对于数字中的每一数位,可以将其转为一个字母,要求我们可以获得的转换个数。 如果没有头绪,可以先分析一些比较简单示例,对于0-9之间的数字,只有一一对 阅读全文
posted @ 2022-01-25 00:11 NullPointer_C 阅读(41) 评论(0) 推荐(0)
摘要: 剑指 Offer 47. 礼物的最大价值 这里有一个好处在于所有值都是正的,所以处理起来不用像子数组一样处理和为负要重新选择,但是这里也是比较简单的。 可以用dp[i][j]记录我们走到[i][j]位置时所能获得的礼物最大价值,那么很显然,我们到达[i][j]位置有2种方式,从[i-1][j]即从上 阅读全文
posted @ 2022-01-24 00:07 NullPointer_C 阅读(39) 评论(0) 推荐(0)
摘要: 剑指 Offer 42. 连续子数组的最大和 注意这里有要求要是$O(n)$的复杂度,我们记录dp[i]为以nums[i]结尾的最大连续子数组的和,终止返回值为ans,那么对于每一个位置i,以它结尾的子数组可以拼接前面的组成或者单独成子数组。 显然就有状态转移方程dp[i] = Math.max(d 阅读全文
posted @ 2022-01-23 23:53 NullPointer_C 阅读(37) 评论(0) 推荐(0)
摘要: 剑指 Offer 63. 股票的最大利润 正经的dp做法应该是用dp[i]记录第i天售出股票所能获取的最大利润,然后从第i天起往前遍历,如果前面的购入价prices[j]有比今天的售价prices[i] = cur更低的,那么我们就尝试出售,并将获取的利润cur - prices[j]作为利润和dp 阅读全文
posted @ 2022-01-22 21:27 NullPointer_C 阅读(54) 评论(0) 推荐(0)
摘要: 剑指 Offer 10- II. 青蛙跳台阶问题 和斐波那契数列一样的思路,这里有点不同的是,当台阶数为0的时候,有1中可达的方式,故而返回1。 class Solution { public int numWays(int n) { int MOD = (int)(1e9 + 7); int a 阅读全文
posted @ 2022-01-22 21:03 NullPointer_C 阅读(25) 评论(0) 推荐(0)
摘要: 剑指 Offer 10- I. 斐波那契数列 这里需要注意的地方有两个: ①.这里要求的是第n项,但是有有第一项是F(0),所以也就是说要求的第n项也就是F(n-1); ②.对于结果需要对1e9+7取模; 所以写代码的时候需要注意,循环多少次,从哪里开始循环,循环的过程中怎么取模。 我们要a代表F( 阅读全文
posted @ 2022-01-22 20:52 NullPointer_C 阅读(41) 评论(0) 推荐(0)
摘要: 剑指 Offer 28. 对称的二叉树 太fw了,又是之前写了的题,结果又不会做,已经快要被打击得没有自信了🤣。之前也不知道是不是自己写得,用bfs写的,一开始也是想用bfs,结果没有一点头绪,只好转向dfs,结果dfs也不会写🤣。 还是在评论区看到了怎么分析这题,下定决心不能再混了,太fw了, 阅读全文
posted @ 2022-01-21 22:27 NullPointer_C 阅读(28) 评论(0) 推荐(0)