夸父追日专题

夸父追日:第八章 贪心算法 part03

今日收获:加油站,分发糖果,柠檬水找零,根据身高重建队列 1. 加油站 题目链接:134. - 力扣(LeetCode) 思路: (1)局部最优是剩余油量和要大于0,否则选下一个节点作为起始节点 (2)记录当前剩余油量和总的剩余油量,如果当前剩余油量小于0,选择下一个节点作为起点。思路有点像最大子序和;如果总的剩余油量小于0,说明无解 方法: class Solution {publ

夸父追日:第八章 贪心算法 part02

今日收获:买卖股票的最佳时机II,跳跃游戏,跳跃游戏Ⅱ,K次取反后最大化的数组和 1. 买卖股票的最佳时机II 题目链接:122. 买卖股票的最佳时机 II - 力扣(LeetCode) 思路:收集每天的正利润(局部最优),如果这天亏了就不收集。重点是有一个思路上的转变,将最低买入和最高卖出,转化为收集每一天的利润。 方法: class Solution {public int maxP

夸父追日:第八章 贪心算法 part01

今日收获:理论基础,分发饼干,摆动序列,最大子序列和 1. 理论基础 思想:每一步都选择当前情况下的最优解,进而达到全局最优 2. 分发饼干 题目链接:455. 分发饼干 - 力扣(LeetCode) 思路: (1)局部最优:把大饼干尽可能喂给大胃口的小朋友,就可以满足让更多的孩子吃饱。 (2)实现:遍历胃口数组,寻找大饼干能喂饱的第一个孩子,满足条件之后收集结果,拿下一块尽可能大的

夸父追日:第七章 回溯算法part02

今日收获:组合总和,组合总和Ⅱ,分割回文串 代码随想录:for循环横向遍历,递归纵向遍历,回溯不断调整结果集。 1. 组合总和 题目链接:39. 组合总和 - 力扣(LeetCode) 思路:和216. 组合总和 III - 力扣(LeetCode)很像,不同之处在于可以重复选择当前元素,所以递归时start不用+1 方法: class Solution {List<Integer>

夸父追日:第七章 回溯算法part03

今日收获:复原IP地址,子集,子集Ⅱ 1. 复原IP地址 题目链接:93. 复原 IP 地址 - 力扣(LeetCode) 思路:         1. 终止条件:因为整个字符串切割为四段就好,所以终止条件是path的长度为3,然后判断剩下字符串的有效性,如果有效就添加,无效就返回。         2. 和分割回文子串的思路相似,只是终止条件不同,以及判断字符串是否合法不同 方法: