力扣刷题遇见的小问题记录
菜鸟刷题记录
黄金光飞航
这个作者很懒,什么都没留下…
展开
-
动态规划刷题思路理解:leetcode1014:最佳观光组合
好家伙,我上来反手就一个暴力思路:在第n处获得了最高分M(n) = max(M(n - 1), max(V(i) + i + V(n) - n)其中 i 表示从0 ~ n-1分为两部分:M(n - 1)表示没玩过的景点;后边按照题意可以分为两部分两处景点的头和尾,尾指定是个定值,那么关键就在0 ~ n - 1这一趴的最大值令m(n - 1) = max(V(i) + i)可以得到m(n - 1) = max(m(n - 2), V(n - 1) + (n - 1))从上边可以得到re.原创 2021-08-25 20:51:02 · 126 阅读 · 0 评论 -
leetcode:443 压缩字符串 思路整理
思路感觉比较好想,但代码就有点南了,对我而言5_5要求直接修改原数组先一手遍历,过程中记一下有几个重复chars[i] != chars[i + 1]关键就是数完之后的操作,如果大于1,通过取余取整操作直接放入chars数组中if(num > 1){ int tmp = l; while(num > 0) { chars[l++] = num % 10 + '0'; num /= 10; } reverse(&chars[tmp], &a.原创 2021-08-21 16:58:02 · 74 阅读 · 0 评论 -
leetcode: 740. 删除并获得点数
好家伙!!必须记录!!另类打家劫舍???就做小偷了就好趴 看了题解 确实 必须记录! (哭辽_ 动态规划可太难了,感觉早上的打家劫舍已经踏入门口了,下午直接窗都看不见了)废话太多了 记录开始:先看题题目:给你一个整数数组 nums ,你可以对它进行一些操作。每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除 所有 等于 nums[i] - 1 和 nums[i] + 1 的元素。开始你拥有 0 个点数。返回你能通过这些操作获得的最大点数。示例原创 2021-08-19 20:57:08 · 104 阅读 · 0 评论 -
【滚动数组】
在力扣刷到198题.打家劫舍中碰到了滚动数组,先看结果真的节省空间啊这!从代码直接一下int l = nums[0];int r = max(nums[0], nums[1]); for(int i = 2; i < n; i++) { int tmp = r; r = max(l + nums[i], r); l = tmp; }我自己理解是:在这个循环里边每一步都会舍弃掉之原创 2021-08-19 16:22:36 · 51 阅读 · 0 评论