学习日记5.2-5.5

学习日记5.2-5.5,第1张

2022.5.2 1、贪心算法刷题:

376. 摆动序列
局部最优:删除单调坡度上的节点(不包括单调坡度两端的节点),那么这个坡度就可以有两个局部峰值。
整体最优:整个序列有最多的局部峰值,从而达到最长摆动序列。
53. 最大子序和
贪心的思路为局部最优:当前“连续和”为负数的时候立刻放弃,从下一个元素重新计算“连续和”,因为负数加上下一个元素 “连续和”只会越来越小。从而推出全局最优:选取最大“连续和”
122. 买卖股票的最佳时机 II

总结:
  • 贪心的本质是选择每一阶段的局部最优,从而达到全局最优。
  • 不好意思,贪心没套路,就刷题而言,如果感觉好像局部最优可以推出全局最优,然后想不到反例,那就试一试贪心吧!
  • 贪心的本质:局部最优和全局最优两个关键点。
2022.5.3 1、贪心算法刷题:

55. 跳跃游戏
(循环i 1005. K 次取反后最大化的数组和
(两次贪心,第一次贪心:把负数→正数,k–,第二次贪心:k为奇数,将最小数变负)
(学了IntStream快排,.of().boxed().sorted().mapToInt().toArray()和Arrays.stream(nums).sum())
134. 加油站
(三个参数,start,cursum,totalsum,totalsum>0,可以跑完,cursum<0,当前不行,start+1)

2022.5.4 1、回溯刷题:

77. 组合
216. 组合总和 III

2、二叉树刷题:

226. 翻转二叉树
101. 对称二叉树
104. 二叉树的最大深度(后序遍历,其实求的是高度,从下往上)

2022.5.4 1、二叉树刷题:

104. 二叉树的最大深度(前序递归函数需要定义两个变量,一个节点,一个该节点的当前深度,主函数需要写根节点和当前深度1)
111. 二叉树的最小深度
222. 完全二叉树的节点个数
110. 平衡二叉树(递归)

总结:

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/801540.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-07
下一篇 2022-05-07

发表评论

登录后才能评论

评论列表(0条)

保存