
力扣
Involuter
小白,努力学习中,加油。
展开
-
拆分 力扣1109
1109. 航班预订统计 - 力扣(LeetCode) (leetcode-cn.com) 本质上是前缀和加拆分的思想。将n个相同的变化转化为2个(即头和尾)的变化,更加有利于改善时间复杂度。 本题做法即先将数组逆前缀和化,再利用逆前缀和数组的特点,即index位置的值表示的是和数组中index位置和index-1位置的数值之差,对逆前缀和数组进行处理,最后进行前缀和计算得到结果。(此为倒推,方便看懂题解) 正推: 对于一个正常的数组来说,在某一段位置加上某个数对于前缀和来说影响的只有头和尾巴+原创 2021-08-31 13:38:59 · 99 阅读 · 0 评论 -
递归,谁是赢家问题
这类问题可以用递归来解决。核心思想就是使用哪一种选择来使自己成功。 力扣486, 决定使用哪种选择是使用max函数判断两种选择方式哪一个更棒。(min函数是对于另一个人来说的最优选择) 关键点在于抽象地使用递归这一方法。对于每次递归,我们的目的是查看哪一个更优,至于如何计算后续的结果,交给计算机即可。 自己的问题在于忘记了两个人都需要自己的每一步最优! class Solution { public: int choose(vector<int>& nums,int原创 2021-08-10 16:32:25 · 69 阅读 · 0 评论