240
笔下虽有千言,胸中实无一策
摘要: 题解 Medium 避免使用 erase ,复杂度较高。 class Solution { public: vector<vector<int>> insert(vector<vector<int>>& intervals, vector<int>& newInterval) { vector<ve 阅读全文
posted @ 2020-10-10 11:23 CasperWin 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 题解 Hard 动态规划 nums[0 - i]的数组划分乘j份,这是我们要解决的问题。那么如果我们已经知道 nums[0 .. k] (k < i) 划分成 j-1 份的样子,那么这个问题是不是就好解决了。因为最后一份是确定的。所以,以这样的方式划分,最大的那份是 nums[0 - k] 划分 j 阅读全文
posted @ 2020-10-10 10:21 CasperWin 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 题解 Medium 方法:动态规划 左边 k 个数连续求和,右边倒数 k 个数连续求和。然后,两个数组收尾相加,就是 k 次首、尾抽牌的所有组合。 class Solution { public: int maxScore(vector<int>& cardPoints, int k) { vect 阅读全文
posted @ 2020-10-10 09:25 CasperWin 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 题解 Hard 方法一:Better Brute Force 思路是好理解的:从左往右遍历,在每一个位置,又从当前位置遍历到数组最后,同时更新 minheight * current_width . 这个方法还不足以通过,但是对后面的85题有启发意义。所以放在这里。 class Solution { 阅读全文
posted @ 2020-10-10 06:40 CasperWin 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 题解 Hard 方法一:动态规划 取每个位置的最大高度 Maximum Height at Each Point 这道题与84题联系在一起看,完全可以转化成84题的样子。对于每一行,只看其以上的数组元素,把连续的值为1的格子累加起来,就变成 histogram 了。 那么,在每一个值为1的坐标位置上 阅读全文
posted @ 2020-10-10 05:21 CasperWin 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 题解 Hard 动态规划 这道题是一道很具有代表性的二维动态规划问题,非常具有示范效应,理解了这道题的思路,能够举一反三。 一开始没有思路的时候,用一个小例子手动演算一下很有帮助。 Example: word1: abc, word2: abbc \0 a b b c \0 0 1 2 3 4 a 阅读全文
posted @ 2020-10-10 02:57 CasperWin 阅读(97) 评论(0) 推荐(0) 编辑