- 博客(283)
- 收藏
- 关注
原创 代码随想录四刷day16
本周的主题其实是简单但并不简单,本周所选的题目大多是看一下就会的题目,但是大家看完本周的文章估计也发现了,二叉树的简单题目其实里面都藏了很多细节。 这些细节我都给大家展现了出来。
2024-08-29 20:57:10 285
原创 代码随想录四刷day14
迭代法中我们使用了队列,需要注意的是这不是层序遍历,而且仅仅通过一个容器来成对的存放我们要比较的元素,知道这一本质之后就发现,用队列,用栈,甚至用数组,都是可以的。
2024-08-28 11:20:54 408
原创 代码随想录四刷day11
class MyQueue { Deque deque = new LinkedList(); //弹出元素时,比较当前要弹出的数值是否等于队列出口的数值,如果相等则弹出 //同时判断队列当前是否为空 void poll(int val) { if (!deque.isEmpty() && val == deque.peek()) { deque.poll(); } } //添加元素
2024-08-19 17:48:50 250
原创 代码随想录四刷day8
暴力的解法, 就是一个for循环获取 子串的终止位置, 然后判断子串是否能重复构成字符串,又嵌套一个for循环,所以是O(n^2)的时间复杂度
2024-08-15 16:51:54 227
原创 代码随想录四刷day7
如果想把这道题目做到极致,就不要只用额外的辅助空间了! (不过使用Java刷题的录友,一定要使用辅助空间,因为Java里的string不能修改)
2024-08-14 10:59:44 285
原创 代码随想录四刷day6
两层for循环就可以确定 a 和b 的数值了,可以使用哈希法来确定 0-(a+b) 是否在 数组里出现过,其实这个思路是正确的,但是我们有一个非常棘手的问题,就是题目中说的不可以包含重复的三元组。
2024-08-12 12:11:55 334
原创 代码随想录四刷day5
「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。
2024-07-30 15:51:57 171
原创 代码随想录四刷day3
双指针的经典应用,如果要删除倒数第n个节点,让fast移动n步,然后让fast和slow同时移动,直到fast指向链表末尾。删掉slow所指向的节点就可以了。
2024-07-19 22:00:04 301
原创 代码随想录四刷day1
接下来就开始介绍数组操作中另一个重要的方法:滑动窗口。所谓滑动窗口,就是不断的调节子序列的起始位置和终止位置,从而得出我们要想的结果。在暴力解法中,是一个for循环滑动窗口的起始位置,一个for循环为滑动窗口的终止位置,用两个for循环 完成了一个不断搜索区间的过程。
2024-07-08 10:46:39 181
原创 代码随想录三刷day51
依然是从地图周边出发,将周边空格相邻的'O'都做上标记,然后在遍历一遍地图,遇到 'O' 且没做过标记的,那么都是地图中间的'O',全部改成'X'就行。
2024-05-15 00:12:15 768
原创 代码随想录三刷day48
动规五部曲分别为:确定dp数组(dp table)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组动规五部曲分别为:确定dp数组(dp table)以及下标的含义确定递推公式dp数组如何初始化确定遍历顺序举例推导dp数组
2024-04-30 11:20:09 311
原创 代码随想录三刷day47
本周我们讲了动态规划之终极绝杀:编辑距离,为什么叫做终极绝杀呢?细心的录友应该知道,我们在前三篇动态规划的文章就一直为 编辑距离 这道题目做铺垫
2024-04-25 11:09:23 309 2
原创 代码随想录三刷day45
一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。
2024-04-23 11:32:03 215
原创 代码随想录三刷day44
从买卖一次到买卖多次,从最多买卖两次到最多买卖k次,从冷冻期再到手续费,最后再来一个股票大总结,可以说对股票系列完美收官了。
2024-04-22 12:59:19 247
原创 代码随想录三刷day43
给定一个整数数组 prices ,它的第 i 个元素 prices[i] 是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。
2024-04-22 10:55:15 366
原创 代码随想录三刷day42
而动态规划其实就是使用状态转移容器来记录状态的变化,这里可以使用一个长度为2的数组,记录当前节点偷与不偷所得到的的最大金钱。
2024-04-18 11:22:27 291 2
原创 代码随想录三刷day41
这篇背包问题总结篇是对背包问题的高度概括,讲最关键的两部:递推公式和遍历顺序,结合力扣上的题目全都抽象出来了。而且每一个点,我都给出了对应的力扣题目。
2024-04-16 22:27:19 230
原创 代码随想录三刷day40
这也是大多数同学学习动态规划的苦恼所在,有的时候递推公式很简单,难在遍历顺序上!但最终又可以稀里糊涂的把题目过了,也不知道为什么这样可以过,反正就是过了。那么这篇文章就把遍历顺序分析的清清楚楚。
2024-04-15 23:37:41 193
原创 代码随想录三刷day39
有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品都有无限个(也就是可以放入背包多次),求解将哪些物品装入背包里物品价值总和最大。完全背包和01背包问题唯一不同的地方就是,每种物品有无限件。
2024-04-14 23:08:55 192
原创 代码随想录三刷day39
但我还会坚持规划好的路线,难度循序渐进,并以面试经典题目为准,该简单的时候就是简单,同时也不会因为阅读量低就放弃有难度的题目!
2024-04-09 23:43:45 218
原创 代码随想录三刷day37
我们知道这是完全背包,如果求组合数就是外层for循环遍历物品,内层for遍历背包。如果求排列数就是外层for遍历背包,内层for循环遍历物品。
2024-04-06 15:54:30 234
原创 代码随想录三刷day36
有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品都有无限个(也就是可以放入背包多次),求解将哪些物品装入背包里物品价值总和最大。
2024-03-28 11:20:42 315
原创 代码随想录三刷day35
但我还会坚持规划好的路线,难度循序渐进,并以面试经典题目为准,该简单的时候就是简单,同时也不会因为阅读量低就放弃有难度的题目
2024-03-26 11:56:14 225
原创 代码随想录三刷day34
对于动态规划问题,我将拆解为如下五步曲,这五步都搞清楚了,才能说把动态规划真的掌握了!1确定dp数组(dp table)以及下标的含义2确定递推公式3dp数组如何初始化4确定遍历顺序5举例推导dp数组
2024-03-25 20:29:25 267
原创 代码随想录三刷day33
因为贪心的简单题可能往往过于简单甚至感觉不到贪心,如果我连续几天讲解简单的贪心,估计录友们一定会不耐烦了,会感觉贪心有啥好学的。但贪心的难题又真的有点难,所以我是简单困难交错着讲的,这样大家就感觉难度适中,而且贪心也没有什么框架和套路,所以对刷题顺序要求没有那么高。
2024-03-24 15:10:38 169
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人