87. Scramble String: 区间dp加上memory search
97. Interleaving String: 简单的双链dp问题
99. Recover Binary Search Tree: 利用inorder的方法找到两个变化的值,然后对node进行重新赋值
115. Distinct Subsequences: 又是双链的dp问题
123. Best Time to Buy and Sell Stock III: 因为最多买卖两次,可以记录每一点之前的片段可以获得最大值和每一点之后的片段可以获得的最大值,然后找出最大的分割点就可以了
124. Binary Tree Maximum Path Sum: 在helper函数里记录两个值,一个是maxvalue,一个maxsinglevalue
126. Word Ladder II:这题用bfs,然后记录一个逆向的trace
128. Longest Consecutive Sequence: 利用hash,还是比较容易做的
132. Palindrome Partitioning II:先用一个二维dp计算出所有i~j满足panlin的情况,然后再用一个一维dp来选择出最小的cut的情况
135. Candy: greedy的方法
140. Word Break II: 有时候在backtracking的时候可以返回一个list
145. Binary Tree Postorder Traversal: 有一个逆转preorder的写法,但感觉这个写法不是正途,如果在其它程序里需要用到这个片段的话,就没办法了
146. LRU Cache: 基本想法就是字典+上双向链表,字典里存的是key到链表的节点,每次访问的时候可以把访问的元素从链表里拆开,然后放到最后一位。
149. Max Points on a Line: 利用hash表慢慢做就好了
154. Find Minimum in Rotated Sorted Array II: 这个如果有duplicates就没办法了,时间复杂度就没法优化了
158. Read N Characters Given Read4 II - Call multiple times: 如果要call很多次,就要设置一个全局变量queue来存储所有读进来的chars
159. Longest Substring with At Most Two Distinct Characters: 简单的前向型指针问题
164. Maximum Gap: 比较麻烦的一道题,要用到bucketsort
174. Dungeon Game: 很巧妙的一道题,利用逆向dp,也就是从终点开始的dp,# dp[i][j] the minimum hp for i,j to go to the last block
188. Best Time to Buy and Sell Stock IV: 一道比较经典的dp题 # dp[i][j] 对前j个元素进行最多i次transactions获取的最大值, 有点儿区间dp的意思
10.3 - hard总结2
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
- 198. House Robber【Easy DP】You are a professional robber p...