简述各题

4.Median of Two Sorted Arrays:二分法,注意细节,各种-1, + 1。

10.Regular Expression Matching: 注意为*时的三种表达,为多个字母,一个字母和空。

66.Plus One: 注意carry = 0的时候就可以结束了。

31.Next Permutation: 原理我始终没搞明白,但是好神奇,有空问问。reverse的时候要包括second。

274.H-Index: 注意j=len-i-1,注意条件是j>=citations[i]。注意各种细节。

360.Sort Transformed Array: two pointers,注意 a >=0 和a<0时输入到result的时候顺序得变,两个得数的判定情况也得变。

280.Wiggle Sort: 算法精妙,注意in-place。注意观察数的规律,奇数位需要比左边的偶数位的大,偶数位的要比左边奇数位的小。

281.Wiggle Sort II:

139.Word Break:

140.Word Break II:!!!

133.Clone Graph:

208.Implement Trie:

314.Binary Tree Vertical Order Traversal

146.LRU Cache:

460.LFU Cache:

312.Burst Balloons:

200.Number of Islands:

201.Number of IslandsII:

293.Flip Game:

294.Flip Game II:

375.Guess Number Higher or Lower:

376.Guess Number Higher or LowerII: !!!

224.Basic Calculator:

282.Expression Add Operators:

320.Generalized Abbreviation:注意怎样递归,没算复杂度

22.Generate Parentheses: !!!注意怎样递归,没算复杂度

239.Search a 2D Matrix II: 二分法 还没做

240.Search a 2D Matrix II: 从右上或左下角开始。

288.Unique Word Abbreviation: 注意各种情况,字典里本来就有重复,以及字典里只有一个相同的。

329.Longest Increasing Path in a Matrix: 用DP,要用一个数组记住已经算出节点的最大值。普通dfs会超时。

246.Strobogrammatic Number: 注意string的创建方法, 可用Arrays.asList("00", "11", "88",“696”) .

247.Strobogrammatic Number II:一层一层剥,可以重写一遍,注意0的加入。

20.Valid Parentheses: 注意stack是空的情况。

22.Generate Parentheses: 注意右括号要比左括号少才能加。

490.The Maze: 注意dfs的while里多加一次,要减掉。

505.The Maze II:visited变为distance,当值更小时更新。bfs可用PQ。

323.Number of Connected Components in an Undirected Graph

314.Binary Tree Vertical Order Traversal

394.Decode String: 俩stack,先放空的,push结果时要加上之前stack里的。

377.Combination Sum IV:仔细想想怎么做,公式!初始化!

316.Remove Duplicate Letters:注是subsequence,注意判断条件。

354.Russian Doll Envelopes:注意Arrays.binarySearch的用法。

474.Ones and Zeroes: DP,注意公式,注意一定要从后往前推。

503.Next Greater Element II:stack, 走两遍,第一遍倒着走第二遍顺着走。

501.Find Mode in Binary Search Tree: 注意list.clear()。

298.Binary Tree Longest Consecutive Sequence

494.Target Sum

485.Max Consecutive Ones

487.Max Consecutive Ones II

475.Heaters

498.Diagonal Traverse

486.Predict the Winner

310.Minimum Height Trees: 循环:n>2,注意iterator.next(),set不能转int。

239.Sliding Window Maximum: deque用法,先判断deque是否为空。

54.Spiral Matrix

56.Merge Intervals

23.Merge K sorted Lists

284.Peeking Iterator: 注意全局变量和next()方法的区别。

480.Sliding Window Median: 注意(double)加法和随时平衡两个堆。

361.Bomb Enemy:行不用数组因为可一直更新,注意算行列敌人时初始化。

341.Flatten Nested List Iterator: 用stack,注意while

281.Zigzag Iterator:注意iterator用法。

269.Alien Dictionary: 没写完太长,回忆topo sort,前一个数建图

380.Insert Delete GetRandom O(1)

228.Summary Ranges

370.Range Addition

295.Find Median from Data Stream:用Collections.reverseOrder或“-”

259.3Sum Smaller: res += right - left,中间一串数都是。

346.Moving Average from Data Stream

50.Pow(x, n)

286.Walls and Gates

351.Android Unlock Patterns

200.Number of Islands

305.Number of Islands II

271.Encode and Decode Strings

173.Binary Search Tree Iterator

57.Insert Interval

163.Missing Ranges

218.The Skyline Problem

42.Trapping Rain Water

407.Trapping Rain Water II:从外往里,新加点要和当前cell.height比较取大。

297.Serialize and Deserialize Binary Tree

406.Queue Reconstruction by Height:排好序后顺序按p[2]位置插入。

391.Perfect Rectangle

471.Encode String with Shortest Length:看一下kmp算法优化

465.Optimal Account Balancing: dfs,一个一个来,前一个人加完就不用算了

159.Longest Substring with At Most Two Distinct Characters: 类似topo sort

340.Longest Substring with At Most K Distinct Characters

411.Minimum Unique Word Abbreviation:太长没写 有空看

336.Palindrome Pairs

408.Valid Word Abbreviation:num的表示,最后的相加,比较对应位。

353.Design Snake Game: 注意吃进去和减掉,从头吃从尾巴减,先减。

362.Design Hit Counter: 注意循环变换,timestamp-times[i]< 300

155.Min Stack: 注意minStack为空的情况。

251.Flatten 2D Vector: 注意hasNext和next运行完后x和y的值。

276.Paint Fence:当前不能和前一个一样或不能和再前一个一样。

307.Range Sum Query - Mutable:学习建线段树再写一次。

308.Range Sum Query 2D - Mutable:看update和sum中计算最低位的方法。http://www.cnblogs.com/grandyang/p/4985506.html

348.Design Tic-Tac-Toe

400.Nth Digit???没做好

253.Meeting Rooms II:注意heap的初始化。

345.Reverse Vowels of a String:看了一眼没做可以想想

228.Summary Ranges

293.Flip Game

294.Flip Game II:注意map方法递归if (!helper(t, map))

128.Longest Consecutive Sequence: 注意set的删减

289.Game of Life:在左边放第二状态然后右移。注意计算时不能出界。

369.Plus One Linked List:注意一定要新建Node,carry放node.next

162.Find Peak Element:num[-1]=num[n]=-∞,和左右比较即可。

309.Best Time to Buy and Sell Stock with Cooldown:再做。

356.Line Reflection: 看清定义,map的value为set。

447.Number of Boomerangs: res+=val*(val - 1)和map.clear();

358.Rearrange String k Distance Apart:waitQueue先加后判断count是否为0

417.Pacific Atlantic Water Flow

326.Power of Three: 机智的做法,取最大取余,可以记一下

231.Power of Two: Integer.bitCount(n) == 1

261.Graph Valid Tree:看一下树的定义,注意判断是否为cycle。

257.Binary Tree Paths: 注意stringBuilder的backtracking方法

359.Logger Rate Limiter

389.Find the Difference: 可以再想一下,用亦或做。

317.Shortest Distance from All Buildings

425.Word Squares

331.Verify Preorder Serialization of a Binary Tree:while循环外push。

422.Valid Word Square: 注意先看有没有超过length。

493.Reverse Pairs:有空看merge sort做法。

315.Count of Smaller Numbers After Self

482.License Key Formatting

results matching ""

    No results matching ""