- 博客(55)
- 收藏
- 关注
原创 代码随想录算法训练 | 算法总结篇
还记得一开始在力扣上盲目的刷题,没有系统的总结和分类,也没有循序渐进的刷题安排和指导,进步很慢。年前报名了训练营,希望能在实习之前系统的过一遍算法,经过两个月的打卡,现在已经养成了每天刷算法的习惯。因为本科的重心在前端,没有那么重视算法,进入研究生以后转到后端,开始重视起算法。接下来也会经常复习,填补一刷留下的坑。
2024-03-15 11:15:26 449
原创 代码随想录算法训练营第51天| 309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费、股票总结
121.买卖股票的最佳时机122.买卖股票的最佳时机II123.买卖股票的最佳时机III188.买卖股票的最佳时机IV309.最佳买卖股票时机含冷冻期714.买卖股票的最佳时机含手续费首先要分清楚买入和持有的不同,买入是动作,不可延续;持有是状态,可延续。买卖股票问题在dp数组的定义上有其特殊性,由于每天的股票都有持有和不持有两种状态,把dp数组定义成二维数组更好理解。其实一维数组也能解题 (比如背包问题的物品也有放和不放两个动作) ,但理解上比较困难。(可能是动作和状态的区别?
2024-03-05 10:07:13 374
原创 代码随想录| 深搜、797.所有可能的路径、广搜、200. 岛屿数量
回溯算法其实就是深搜,只不过这里的深搜是侧重于在图上搜索,回溯大多是在树上搜索。完成。
2024-03-02 10:50:19 351
原创 代码随想录算法训练营第58天| 单调栈、739. 每日温度、496.下一个更大元素 I
单调栈的单调体现在栈里的元素需要是(栈头到栈尾,头进头出)的。单调栈的使用场景通常是一维数组,要寻找任一元素的右边或者左边的元素的位置。单调栈中通常存放的不是元素,而是元素下标,因为通过元素下标可以轻松得到元素值,但元素值无法直接得到下标。至于栈中元素到底是递增还是递减,取决于具体场景。如果是求元素右边第一个比自己的元素的位置,应该;如果求元素右边第一个比自己的元素的位置,应该。完成。
2024-02-29 12:44:46 387
原创 代码随想录算法训练营第46天| 139.单词拆分、背包问题总结
关于背包问题,01背包和完全背包是重点,其他的背包问题了解即可。在动态规划五部曲中,递推公式和遍历顺序在背包问题中有规律和代表性。
2024-02-29 10:15:42 400
原创 代码随想录算法训练营第38天| 动态规划、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
五部曲写动规题目,代码出问题很正常!找问题的最好方式就是把dp数组打印出来,看看实际值和推导值有什么差别。做动规的题目,写代码之前一定要把状态转移在dp数组的上具体情况模拟一遍,心中有数,确定最后推出的是想要的结果。然后再写代码,如果代码没通过就,看看是不是和自己预先推导的哪里不一样。如果打印出来和自己预先模拟推导是一样的,那么就是自己的递归公式、初始化或者遍历顺序有问题了。如果和自己预先模拟推导的不一样,那么就是代码实现细节有问题。
2024-02-21 10:51:34 383
原创 代码随想录算法训练营第31天| 贪心法、455.分发饼干、376. 摆动序列、53. 最大子序和
贪心的本质是选择每一阶段的局部最优,从而达到全局最优。贪心法没有固定的套路,也没有严格的证明,如果举不出范例,即可试试贪心。完成。
2024-02-14 10:40:32 377
原创 代码随想录算法训练营第30天| 51. N皇后、回溯总结
回溯法就是暴力搜索,并不是什么高效的算法,最多再剪枝一下。组合问题:N个数里面按一定规则找出k个数的集合排列问题:N个数按一定规则全排列,有几种排列方式切割问题:一个字符串按一定规则有几种切割方式子集问题:一个N个数的集合里有多少符合条件的子集棋盘问题:N皇后,解数独等等。
2024-02-08 10:03:51 373
原创 代码随想录算法训练营第24天| 理论基础、77. 组合
回溯法也叫回溯搜索法,是一种搜索方式。其本质是穷举,因此效率不高,用于解决一些只能暴力搜索的问题,如。
2024-02-02 10:59:27 359
原创 代码随想录算法训练营第23天| 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树
108.将有序数组转换为二叉搜索树代码递归地挑选区间的中点值作为根节点538.把二叉搜索树转换为累加树代码最右节点的值不变,其余节点的值从右向左累加。按照右中左的遍历顺序即可从大到小地遍历节点。
2024-02-01 12:55:25 397 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人