摘要: 单调递增的数字 leetcode:738. 单调递增的数字 贪心法 思路 从后往前遍历,碰到不满足单调递增的,前一位数字--,标记当前位置。 从flag(包括)往后,全部赋值为9。 复杂度分析 时间复杂度:O(N)。 空间复杂度:O(N)。 N为数字位数。 注意点 数字->字符串用to_string 阅读全文
posted @ 2024-03-05 21:18 Tazdingo 阅读(707) 评论(0) 推荐(0)
摘要: 无重叠区间 leetcode:435. 无重叠区间 贪心法 思路 去掉最少的区间数就是最少重叠区间对的个数。(成对的算,因为一对里面需要去掉一个) 类似射气球的处理方式。 左边界法: 按左边界从小到大排序。 遍历每个元素。取当前元素右边界为right判断是否重叠。 如果[i]right > [i+1 阅读全文
posted @ 2024-03-05 18:09 Tazdingo 阅读(706) 评论(0) 推荐(0)
摘要: 柠檬水找零 leetcode:860. 柠檬水找零 贪心法 思路 遍历一遍数组,只关注面值5、10的钞票的数量 每轮判断:如果是5,five++;如果是10,判断还有没有5,有的话five--;如果是20,检查有没有一张10、一张5,ten--,five--。或者三张5,five-=3。 贪心:先消 阅读全文
posted @ 2024-03-05 18:09 Tazdingo 阅读(666) 评论(0) 推荐(0)
摘要: K次取反后最大化的数组和 leetcode:1005. K 次取反后最大化的数组和 贪心法 思路 两次贪心:(每次取反k--) 排序,一次遍历,按绝对值从大到小地把负数取反。 如果K次取反没用完,再排序一次,反复取反最小元素。 (或者一开始就按绝对值从大到小排序,只需排序一次) 复杂度分析 时间复杂 阅读全文
posted @ 2024-03-01 23:05 Tazdingo 阅读(870) 评论(0) 推荐(0)
摘要: 想不到,根本想不到 买卖股票的最佳时机Ⅱ leetcode:122. 买卖股票的最佳时机 II 贪心法 思路 任何一天的累计利润都可以拆成之前每天相比前一天的利润之和,因此最大利润就是收集了每天的正利润。 复杂度分析 时间复杂度:O(N)。 空间复杂度:O(1)。 注意点 略 代码实现 class 阅读全文
posted @ 2024-02-29 21:18 Tazdingo 阅读(140) 评论(0) 推荐(0)
摘要: 贪心的一天,头好晕 理论基础 什么是贪心 每次选择都采取局部最优,最终得到全局最优。 (一定是每个阶段都采取局部最优,能够推出全局最优的,如果得不到全局最优就不用贪心法) 套路 没有套路。 但是可以判断用不用贪心: 通过数学归纳/反证法的方式,模拟一下看看能不能局部最优->整体最优。 (一般情况下就 阅读全文
posted @ 2024-02-28 22:10 Tazdingo 阅读(946) 评论(0) 推荐(0)
摘要: 重新安排行程 暂时没精力看,pass N皇后 leetcode:51. N 皇后 回溯法 思路 遍历二维数组,每层递归遍历一层的可能性。 需要注意的是vector<string> 是非常自然的适合一层一层遍历的二维数组数据结构。 检查,如果满足要求,就放入Q。 复杂度分析 时间复杂度: 在 back 阅读全文
posted @ 2024-02-28 00:16 Tazdingo 阅读(918) 评论(0) 推荐(0)
摘要: 递归子序列 leetcode:491. 非递减子序列 回溯法 思路 类似子集Ⅱ,每个元素大于二的节点都放入结果集。 在填充path的过程中,检查是否满足非严格递增(是否等于末元素或比它大)。 但是由于本题不能排序,之前的去重策略(数组排序,检查nums[i - 1] == nums[i] && us 阅读全文
posted @ 2024-02-26 22:04 Tazdingo 阅读(1047) 评论(0) 推荐(0)
摘要: 阶段性还完了旧账 复原IP地址 leetcode:93. 复原 IP 地址 回溯法 思路 和分割回文串类似,只是回文串检测改为IP合法检测。 终止条件也值得注意: 复杂度分析 时间复杂度: 空间复杂度: 注意点 代码实现 递归不一定要返回!! class Solution { private: ve 阅读全文
posted @ 2024-02-25 20:53 Tazdingo 阅读(1037) 评论(0) 推荐(0)
摘要: 组合总和 leetcode:39. 组合总和 回溯法 思路 在组合的基础上,只不过同一个数字可以重复选取,递归时传入i即可(组合是传入i+1)。 复杂度分析 时间复杂度: 在最坏情况下,回溯算法会遍历所有可能的组合,因此时间复杂度取决于解的个数。假设候选数组的长度为n,目标值为target,最坏情况 阅读全文
posted @ 2024-02-25 11:45 Tazdingo 阅读(1103) 评论(0) 推荐(0)