Leetcode第三刷需要注意的问题

2. Reverse Words in a String

注意最后一个单词后面的空格。

4. Max Points on a Line

 

注意slope为double类型, infinity是slope的一个特殊值。

5. Sort List:

需要注意fast slow pointer在只有两个节点时是否能够将list分成两部分。

6. Insertion Sort List:

注意边界条件。

7. LRU Cache

更新List的同时注意同步更新Hash

8. Binary Tree Postorder Traversal

9. Binary Tree Preorder Traversal

10. Reorder List

注意链表为空的情形,以及注意fast slow pointer在只有两个节点时是否能够将list分成两部分。

11. Linked List Cycle II

12. Linked List Cycle

13. Word Break II

注意前驱的存储方式。

14. Word Break

注意递减时用j--,不要用成j++

15. Copy List with Random Pointer (未完成)

16. Single Number II

17. Single Number

18. Candy

注意第二次扫描时不要破坏第一次扫描的条件。

19. Gas Station

20. Clone Graph

因为要记录neighbor信息,注意在入栈时访问,而不能在出栈时访问。

21. Palindrome Partitioning II

DP, 注意f[0] = -1

22. Palindrome Partitioning

DP or DFS(faster)

23. Surrounded Regions

BFS 注意enqueue时visit, dequeue时visit会超时。

24. Sum Root to Leaf Numbers

DFS非递归,注意入栈和出栈的时刻。

25. Longest Consecutive Sequence

unordered_set被修改的情况下利用for...auto进行访问貌似会出错。

26. Word Ladder II

不需要判重的hash,直接将上一层访问过的word从dict中删除即可。

27. Word Ladder

28. Valid Palindrome

注意transform的函数参数

29. Binary Tree Maximum Path Sum

      非递归DFS

30. Best Time to Buy and Sell Stock III

分左右两部分,各求差分

31. Best Time to Buy and Sell Stock II

所有大于零的差分相加。

32. Best Time to Buy and Sell Stock

差分数列的最大子段和。

33. Triangle

buttom-up add, then get the top value

34. Pascal's Triangle II

35. Pascal's Triangle

36. Populating Next Right Pointers in Each Node II

注意细节

37. Populating Next Right Pointers in Each Node


38. Distinct Subsequences

DP, 需要强化巩固。

39. Flatten Binary Tree to Linked List

递归写法简单,非递归写法有待加强。

40. Path Sum II

41. Path Sum

非递归DFS

42. Minimum Depth of Binary Tree

level traversal

43. Balanced Binary Tree

44. Convert Sorted List to Binary Search Tree

buttom up 递归

45. Convert Sorted Array to Binary Search Tree

top down 递归

46. Binary Tree Level Order Traversal II

47. Construct Binary Tree from Inorder and Postorder Traversal

48. Construct Binary Tree from Preorder and Inorder Traversal

49. Maximum Depth of Binary Tree

50. Binary Tree Zigzag Level Order Traversal

51. Binary Tree Level Order Traversal

52. Symmetric Tree

注意开始push root两次。然后每次同时push或pop对称的点。

53. Same Tree

和上一道题思路一样。

54. Recover Binary Search Tree

注意两个broken node相邻的情况。

55. Validate Binary Search Tree

Morris遍历一定要完成,否则树的结构会被破坏。

56. Interleaving String

DP, 注意边界条件。 可以使用滚动数组

57. Unique Binary Search Trees II

Memoization.

58. Unique Binary Search Trees

DP.

59. Binary Tree Inorder Traversal

60. Restore IP Addresses

DFS, 注意IP地址的格式。 IP地址的每一部分如果为0,则必须只有一位‘0’,如果不为0,则不能包含前缀‘0’。

61. Reverse Linked List II

注意细节, reverse函数。

62. Subsets II

DFS,需要强化。

63. Decode Ways

DP

64. Gray Code

找规律。

65. Merge Sorted Array

从后向前merge

66. Scramble String

DP, 注意两个字符串相等的情况需要单独判断。

67. Partition List

注意把right part的next指针设为空。

68. Maximal Rectangle

O(n^3)和O(n^2)两种解法,后者使用stack. 需要强化。

69. Largest Rectangle in Histogram

注意实现的细节。

70. Remove Duplicates from Sorted List II

注意细节,head节点为duplicate的情况。

71. Remove Duplicates from Sorted List

72. Search in Rotated Sorted Array II

注意A[start] == A[mid]的情况。

73. Word Search

DFS(stack or recursion),注意细节,需要强化。

74. Subset

熟练掌握二进制法(非递归,限制条件),增量构造法(递归及非递归),以及位向量法。

75. Combinations

76. Minimum Window Substring

双指针操作。

77. Sort Colors

三指针操作,three-way partition。需要强化。

78. Search a 2D Matrix

Binary Search

79. Set Matrix Zeroes

O(1) space.

80.Edit Distance

注意滚动数组的写法。

81. Simplify Path

使用stack, 注意corner case

82. Climbing Stairs

DP, O(1) space。

83. Sqrt(x)

注意边界条件。Binary search和牛顿法。

84. Text Justification

85. Plus One

注意细节。

86. Valid Number

state machine,需要强化细节。

87. Add Binary

88. Merge Two Sorted Lists

和add binary类似。

89. Minimum Path Sum

      DP + 滚动数组。

90. Unique Paths II

DP+滚动数组,注意细节。

91. Unique Paths

DP+滚动数组,注意细节。

92. Rotate List

注意细节。怎样计算链表长度,怎样断开。

93. Permutation Sequence

康拓编码,注意s.erase(start,len)

94. Spiral Matrix II

注意每一圈四个方向的start idx 和 end idx

95. Length of Last Word

96. Insert Interval

97. Merge Intervals

98. Jump Game

计算每一步可达的最远位置。

99. Spiral Matrix

100. Maximum Subarray

DP, O(N)

101. N-Queens II

DFS (递归和非递归)

102. N-Queens

DFS(递归和非递归)

103. Pow(x, n)

Divide Conquer, 注意边界条件。

104. Anagrams

106. 




122. Longest Valid Parentheses

使用 stack 或1-D DP, 需要强化。

123. Next Permutation

注意最大permutation的情况,要回到最小的permutation。

124. Substring with Concatenation of All Words

使用unordered_map来测试,而不能用unordered_set,因为dict中可能有重复的单词。

125. Divide Two Integers

注意符号为负和溢出的情况。

126. Implement strStr()

O(n^2)算法和robin_carp算法。

127. 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值