一个算法笨蛋的3月leetCode刷题日记
类似文章
时间 | 情况 |
---|---|
2022年3月4日 | 【343】整数拆分(思路:这题做出来了,耗时30多分钟,medium题。这题又印证了我之前的理论:如果看题目感觉完全没思路,脑子乱成一团。那就先套框架,可以有效帮助我们解答。第一步,确认数组含义,也就是确认dp table的含义;第二步初始化,也就是base case;第三步两个for循环;第四步脑子里疯狂想如何由dp[0],dp[1],dp[2]…dp[i-1]推导出dp[i]。根据这套理论,我就是在看完题目后完全没思路的情况下,一步步写出来了,非常amazing。不过这题需要注意的就是2,3需要提前处理,因为dp[1],dp[2],dp[3]用来计算是不能直接根据状态转移方程来的,具体无法说清楚,我之所以可以找到这种特殊,大概是神来之笔?) |
2022年3月5日 | |
2022年3月6日 | |
2022年3月7日 | 【357】计算各个位数不同的数字个数(思路:没做出来,没找出dp[i]和dp[i-1]的关联,我发现对动态规划的题做熟练后,就是个数学归纳题,找规律。对于初始化,找状态,定义数组都是信手捏来。但是状态转移方程还得看能不能找到规律才行。有点难受,这规律有点难找到啊,dp[i] = dp[i - 1] + f;其中f初始化为9,m也初始化为9,f=f*m; m–;这属实不是正常人能找到的规律 ) 【10】正则表达式匹配(思路:不出意外,没做出来,毕竟是hard题,需要考虑的东西挺多的。但是有一说一,我的状态定义和dp数组的定义是正确的。dp[i][j]代表字符串s的前i个字符,和正则字符串p的前j个字符能否匹配。除此以外,我都错了,包括初始化,状态转移方程。有点烦,为啥初始化是直接定义dp[0][0] = true;按照我的理解,不应该是dp[i][0],dp[0][j]都得初始化为false吗?还有就是状态转移方程也是啰啰嗦嗦,能看懂代码,但是怎么想到这种代码的,还是不理解) |
2022年3月8日 | 【42】补充一下,冷静下来后,发现有种方法比我这种好多了,无论是代码量,耗时,还是理解难度都更胜一筹。也就是双指针法,除了内存使用的比我的方法多一点,基本没啥缺点,非常巧妙,学到了。 |
2022年3月9日 | 【32】最长有效括号(思路:这题没做出来,也是hard题。想了非常非常非常久,一晚上都过去了,还是没想到,一开始是尝试使用动态规划 ,然后发现没思路,而栈有了点思路。于是就一直在用栈在尝试解答,想的头皮都要炸了,但是代码改了又改,总是有一种或几种测试用例过不去,最后只能放弃,看题解去了。这题动态规划来写挺简单的,但是也要考虑的非常清晰才行。首先只有在当前字符为“)”时,才有可能是最长有效字符串的末尾字符,否则以当前字符串作为最长子串的一部分的话,这个最长子串的长度只会是0。那么我们只需要考虑s[i-dp[i-1]*2 - 1]的字符到底是“(”,还是“)”。如果是“(”,且i-dp[i-1]*2-1的值大于等于0,那么就可以直接+2,否则就是0) |
2022年3月10日 | 【45】跳跃游戏 II (思路:这题做出来了,medium题。这题对于身经百战的我,用动态规划的写法,基本上没有难度(虽然还是有非常多的medium题我还是做不出来,尴尬)。虽然分分钟做出来了,但是效率不高,第一次提交的耗时击败5%,内存击败20%。这我也理解,毕竟我的时间复杂度都快有O(n^2)了。遂优化,优化也没办法改变需要两个for循环的事实。最后看题目最大值为1000,所以加了个条件,内循环最多循环1000次,勉强减少了一半的耗时,但是还是差。看题解发现没有一个题解能够用动态规划写出好的复杂度。都是用的贪心。老实说,贪心我不熟,后面还得去学啊!!!!) |
2022年3月11日 | |
2022年3月12日 | |
2022年3月13日 | |
2022年3月14日 | |
2022年3月15日 | |
2022年3月16日 | |
2022年3月17日 | |
2022年3月18日 | |
2022年3月19日 | |
2022年3月20日 | |
2022年3月21日 | |
2022年3月22日 | |
2022年3月23日 | |
2022年3月24日 | |
2022年3月25日 | |
2022年3月26日 | |
2022年3月27日 | |
2022年3月28日 | |
2022年3月29日 | |
2022年3月30日 | |
2022年3月31日 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~