- 博客(333)
- 资源 (1)
- 收藏
- 关注
原创 编程注意事项
这些是我刷了题之后的coding细节处理1. 初始值要怎么给这个问题经常出错。例如函数开头定义了一个ret,就一个while或者一个for这种,中间会修改这个ret,结尾返回这个ret,这个ret的初始值就非常重要。值就是特殊用例这几个循环根本就不会进的时候,函数返回值依然是正确的。2.数组遍历 跳过相同参数双指针的时候{1,1,2,2,3,3},例如要left_index+right_index的和等于固定值。那相同的参数就完全没有讨论的必要,如果要求列出不能重复的组合就更麻烦了。do{ i
2021-11-13 21:54:58
337
原创 重刷leetcode
我打算按照下面的方式重新刷题,毕竟经常出现刷了一段时间就忘了。代码我也打算重新写,并更新代码的完成情况。其它基础知识还没想好怎么处理,毕竟我虽然干了快三年,但是并没有学到啥东西,果然海康的产品开发就是测试和技术支持,layman都能干。1.两数之和:哈希表...
2021-10-02 17:24:47
456
1
原创 42.接雨水
单调栈中一定要保存相等的元素。比如5,2,1,2,1,5这组数据,到达第二个2的时候,这个数据如果不存这个2,到底第二个1的时候(此时栈中:0,1),这个1的宽度就会是第一个2到第二个5,但其实此时应该是第二个2到第二个5。这道题一点也不简单,单调栈得比较熟才能AC。一个是宽度,既然单调栈中存储的是下标,那么接水池的宽度就很重要了。
2025-08-26 09:08:57
128
原创 96. 不同的二叉搜索树
这个的递推公式没搞定,三个节点的,分为左0右2和左1右1,而这个0123,节点的样子和只有两个节点时是一样的,但是节点编号不一样,不过节点编号不重要,问的就是形状。
2025-08-17 12:13:29
223
原创 343整数拆分
我做的时候其实一直都没明白为什么dp[i]=dp[i]*dp[j-i]为什么不对,我用了max对了,但是相当于是凑数凑出来的,这种写法不对是因为dp[i]表示的是,这个i一定被拆分的时候,拆出来的结果是多少,但是其实不一定说必须得拆分,所以取一个max就合理了。
2025-08-16 19:29:48
257
原创 131. 分割回文串
我没理解的是这个是分割,之前算是截取。因为这个能画成标准的树形结构,所以用的回溯。判断后面是不是的前提是,当前得是回文串,这就是函数is_reserve的来源。
2025-08-08 08:59:34
230
原创 216. 组合总和 III
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:Ctrl/Command + S
2025-08-05 18:36:43
104
原创 修改apt-get的出口IP
我之前蠢了,给我的apt-get指定了出口IP,为了使用刚高速度的方式,因为那个IP地址确实比较快,但是问题是出口IP竟然不是固定的,我太蠢了。而我竟然还忘了当时是怎么设置的,天呐,太蠢了。其实是在这里设置的``/etc/apt/apt.conf``,进去就能看到了。修改后update一下。我还不知道怎么恢复动态方式,就先记录一下。
2023-12-02 09:46:56
728
1
原创 337. 打家劫舍 III
直接看代码吧,如果不选当前节点,不一定leftresult就一定得选择has,右节点同理;如果选了当前节点,左右就肯定得选nothas了。得用递归,递归函数要求获取算当前节点和不算当前节点时最大的dp结果。
2023-04-30 21:13:25
302
原创 背包问题题
当i=0的时候,这行dp的dp[j]就是0(不选这个物品),所以这个max返回的一定是第二项,而第二项就是选择这个物品,选第二项的时候根本没有考虑满不满,因此这种情况背包可以不满。如果是先遍历物品再遍历容量,和0-1一样的时候,是组合数(无序),先遍历容量再遍历物品是排列数(有序)设置初始值:我见过的一般都是0,只有dp[j]+=dp[j-nums[i]]这种才是1,因为如果是0就始终是0了。0-1背包是先正序遍历物品,后倒序遍历容量,普通完全背包只要都是正序,先遍历物品还是先遍历容量都可以。
2023-04-30 19:43:14
884
原创 377. 组合总和IV
这道题说所有情况都小于INT_MAX,我的第一反映是高个long long的dp数组,这样就肯定没问题了。加一个if判断,因为题目说了,有效结果不会超过INT_MAX。
2023-04-29 20:54:44
115
原创 279 完全平方数
可以把它想成有若干个完全平方数,随便组合,最小的数量是多少,注意不是多少种组合,而是所有情况中最少的元素个数是多少。,所以先便利物品还是先遍历容量都可以。
2023-04-01 16:27:57
88
原创 322. 零钱兑换
第二个是初始值,初始值我没搞明白,但是题目说了0的容量,最小就是0。如果题目没说,我应该怎么办呢?完了这个破题的INT_MAX又搞错了,还得判断。这道题我卡住了两个地方,第一个是DP方程错了。
2023-04-01 15:24:08
102
原创 474. 一和零
这道题还是零一背包,但是容量的概念会不一样,因为容量时二维的概念,由0和1两个元素共同决定的。因此就用二维vector去表示这个容量。
2023-03-30 21:28:18
89
原创 494. 目标和
因此left = (target+sum)/2,如果不能整除,说明不能构造出target,同时,如果sum都小于target,全加都比target小,肯定不行。
2023-03-28 22:10:41
101
原创 1049. 最后一块石头的重量 II
相当于把石头分成两堆,这两堆的重量尽可能相近,两者的差就是最小重量。这道题的难点在于怎么把它和0-1背包联系起来。
2023-03-28 21:03:59
106
原创 146. LRU 缓存
这道题很出名,也不难。三个变量,一个list、一个unordered_map、一个capacity,unordered_map为了get能够1复杂度实现,当一个变量被使用,就把这个变量从链表中的某个位置放到链表头(当然放到链表尾,但是因为没有方法一下获取链表的尾节点迭代器,所以用了头),每次弹出结尾的节点就行。这道题要用到链表的节点移动,splice函数。
2023-03-05 11:38:47
118
原创 343. 整数拆分
dp[i]可以用于遍历,j和i-j,分为这个j和(i-j)用dp和不用dp两种。如果用dp,意思就是这个数字需要被拆分。原题的题解中只判断(i-j)是否需要用dp,至于j就固定不用dp,我也不知道为啥,我觉得都得用。DP的话还是比较好理解的。dp[n]表示n这个数字的最大积是多少。我理解的递推表达式和题解有些区别。
2023-01-01 15:48:27
125
原创 572. 另一棵树的子树
如果两个字符串序列化后可以用string表示,我调用strstr函数就可以判断字符串的关系,但是因为每个节点存储的数据非常大,已经大于char能够存储的范围,就只能用vector进行判断。一个vector是否是另一个vector的子集,C++中是没有函数的,只能用KMP判断。例如一棵树只有一个节点叫做12,另一棵树只有一个根节点2,序列化的结果分别是12##和2##,两者之间并没有关系,但是后者却是前者的子串,这是因为12在字符串中本来应该是一个char,但是我这里用了两个字符,就异常了。
2023-01-01 12:31:04
138
原创 459. 重复的子字符串
两个字符串相加,删掉第一个和最后一个字符,如果原字符是这个字符的子集,就认为原字符可以由若个相同字符拼接而成,但是我并没看证明过程。
2023-01-01 12:21:44
108
原创 90. 子集 II
选这个点是没有限制的,因为1,2选完了,1,2,2还是可以继续选的。不过不选是可能有重复的,要看之前是否选择过,如果有机会选却没用,就说明一定有另一种情况选了带那个带的,因此就不要选了。就说排序的,因为哈希的方法是一样的。这道题两种办法应该都行,因为本来就有空间复杂度,再加一个哈希没区别。一般而言去重有两种办法,我常用的就是哈希,如果能排序可能会更好。输出:[[],[1],[1,2],[1,2,2],[2],[2,2]],机不可失时不再来。输入:nums = [1,2,2]输出:[[],[0]]
2022-12-10 16:55:12
409
原创 117. 填充每个节点的下一个右侧节点指针 II
这道题本来可以很简答,一个队列,存储指针和它的行数就OK了,但是这道题的难点在于不用额外空间复杂度。横向看一下,这一行是不是就是一个链表呢?多加一个变量,用来存储第一有有效节点,什么是有效节点呢?就是左右节点中至少有一个不为空的。这个节点为啥不存第一个节点呢?而是存第一个有效节点呢?其实对于这一行来说是没有区别的,但是对于下一行的使用是有区别的。下面介绍第二个变量,叫做pre,每次遍历一个节点,都是让pre的next指向当前节点。既然这样,pre的默认值是无意义的。因为pre的next才是第一个有效节
2022-12-07 21:27:01
369
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅