
leetcode刷题-回溯、贪心、动态规划
文章平均质量分 64
leetcode经典题目中的回溯、贪心、动态规划类算法题目整理
emmmmXxxy
这个作者很懒,什么都没留下…
展开
-
leetcode刷题-贪心04
今天的三道题目,都算是 重叠区间 问题,大家可以好好感受一下。都属于那种看起来好复杂,但一看贪心解法,惊呼:这么巧妙!这种题还是属于那种,做过了也就会了,没做过就很难想出来。不过大家把如下三题做了之后, 重叠区间 基本上差不多了。原创 2025-02-03 18:57:49 · 396 阅读 · 0 评论 -
leetcode刷题-动态规划08
可买卖多次,第i天买入股票手头上的现金不是0,可能是之前买卖多次获得的利润,所以在递推公式中dp[i][0]需要改变。本题可以不用维护一个dp数组,只用4个变量即可(状态压缩)本题最多可以完成两笔交易,不能同时参与多笔交易。可用贪心法,本题相比上题改为:可买卖多次。本题这一只股票只买卖一次。暴力解法、动态规划解法。以前的提交:贪心算法。原创 2025-02-24 20:15:45 · 695 阅读 · 0 评论 -
leetcode刷题-贪心02
在当前的覆盖范围内进行遍历,同时记录下一步的最大范围,如果遍历到当前的最后一个覆盖范围,判断是否到终点了,否则,result++并更新当前的覆盖范围。因为这道题每天都可以买卖,所以一个区间就可以一天一天的进行交易,只要后一天的价格高于前一天的价格,就进行交易,获取利润。思路打开:不用管是跳几步,看覆盖范围,覆盖范围最终能不能把最后一步覆盖掉;(动态for循环,但python中不支持,用while代替)curr和next分别记录当前和下一步最大的覆盖范围。简单题,每次选最小的就可以。原创 2024-12-30 12:00:05 · 305 阅读 · 0 评论 -
leetcode刷题-贪心01
注意代码中的for循环和while循环的顺序不能颠倒(如果从大的开始的话)贪心算法:如果到当前的连续和为负数的话,从0开始。贪心思路:用大饼干去满足胃口大的孩子。局部最优能否推出全局最优。暴力求解:复杂度n2。原创 2024-12-21 21:59:47 · 297 阅读 · 0 评论 -
leetcode刷题-回溯算法04
集合中有重复元素,去重,(排序)(数层去重used[i-1]==False)与上一题不同,不能用used列表,因为这个题不能排序,在每一个for循环里面用一个集合记录遍历过的数。排列(考虑顺序)和组合问题(不考虑顺序)的区别。借助used数组(需要进入递归)原创 2024-12-20 21:49:22 · 294 阅读 · 0 评论 -
leetcode刷题-回溯算法03
不仅要进行切割,还要进行合法性判读。不仅要进行切割,还要进行合法性判读。原创 2024-12-19 11:30:29 · 271 阅读 · 0 评论 -
leetcode刷题-回溯算法02
题目:重复选取,警惕0,如果有0就是死循环了,(已知所有元素都为正整数没有重复元素)与上题相比不能重复,但candidate中存在重复的数,解集不能包含重复的组合。这里与前面的不同主要是在选择了一个数时,下一次要选的列表也包含这个数。树层去重的话,需要对数组排序!先排序,剪枝大于最大值的部分。原创 2024-12-17 19:03:48 · 370 阅读 · 0 评论 -
leetcode刷题-回溯算法01
回溯是递归的副产品,只要有递归就会有回溯。回溯的本质是穷举,穷举所有可能,然后选出我们想要的答案,如果想让回溯法高效一些,可以加一些剪枝的操作,但也改不了回溯法就是穷举的本质。【纯暴力搜索】原创 2024-11-06 19:51:28 · 322 阅读 · 0 评论