286

GitHub - awangdev/LintCode: Java Solutions to problems on LintCode/LeetCode

 6 years ago
source link: https://github.com/awangdev/LintCode
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

README.md

Java Algorithm Problems

程序员的一天

从开始这个Github已经有将近两年时间, 很高兴这个repo可以帮到有需要的人. 我一直认为, 知识本身是无价的, 因此每逢闲暇, 我就会来维护这个repo, 给刷题的朋友们一些我的想法和见解. 下面来简单介绍一下这个repo:

README.md: 所有所做过的题目

ReviewPage.md: 所有题目的总结和归纳(不断完善中)

KnowledgeHash2.md: 对所做过的知识点的一些笔记

SystemDesign.md: 对系统设计的一些笔记

Future Milestone: 我准备将一些有意思的题目,做成视频的形式给大家参考

希望大家学习顺利, 对未来充满希望(程序员也是找到好老板的!) 有问题可以给我写邮件([email protected]), 或者在GitHub上发issue给我.

Squence Problem Level Language Tags Video Tutorial 0 Alien Dictionary.java Hard Java []

1 Anagrams.java Medium Java []

2 Binary Representation.java Hard Java []

3 Binary Tree Level Order Traversal II.java Medium Java []

4 Binary Tree Level Order Traversal.java Medium Java []

5 Binary Tree Longest Consecutive Sequence.java Medium Java []

6 Binary Tree Maximum Path Sum II.java Medium Java []

7 Binary Tree Preorder Traversal.java Easy Java []

8 Binary Tree Right Side View.java Medium Java []

9 Binary Tree Serialization.java Medium Java []

10 Binary Tree Zigzag Level Order Traversal.java Medium Java []

11 Closest Number in Sorted Array.java Easy Java []

12 ColorGrid.java Medium Java []

13 Combination Sum II.java Medium Java []

14 Combination Sum.java Medium Java []

15 Combinations.java Medium Java []

16 Compare Strings.java Easy Java []

17 Complete Binary Tree.java Easy Java []

18 Construct Binary Tree from Inorder and Postorder Traversal.java Medium Java []

19 Container With Most Water.java Medium Java []

20 Contains Duplicate II.java Easy Java []

21 Contains Duplicate III.java Medium Java []

22 Contains Duplicate.java Easy Java []

23 Convert Binary Search Tree to Doubly Linked List.java Medium Java []

24 Convert Expression to Polish Notation.java Hard Java []

25 Convert Expression to Reverse Polish Notation.java Hard Java []

26 Convert Integer A to Integer B.java Easy Java []

27 Copy List with Random Pointer.java Medium Java []

28 Cosine Similarity.java Easy Java []

29 Count 1 in Binary.java Easy Java []

30 Count and Say.java Easy Java []

31 Count of Smaller Number before itself.java Hard Java []

32 Count of Smaller Number.java Medium Java []

33 Count Primes.java Easy Java []

34 Delete Digits.java Medium Java []

35 Delete Node in the Middle of Singly Linked List.java Easy Java []

36 Encode and Decode Strings.java Medium Java []

37 ExcelSheetColumnNumber .java Easy Java []

38 Expression Evaluation.java Hard Java []

39 Expression Tree Build.java Hard Java []

40 Fast Power.java Medium Java []

41 Fibonacci.java Easy Java []

42 Find the Connected Component in the Undirected Graph.java Medium Java []

43 Find the Weak Connected Component in the Directed Graph.java Medium Java []

44 First Missing Positive.java N/A Java []

45 Flatten 2D Vector.java Medium Java []

46 Flip Game II.java Medium Java []

47 Flip Game.java Easy Java []

48 Fraction to Recurring Decimal.java Medium Java []

49 Gas Station.java N/A Java []

50 Generate Parentheses.java Medium Java []

51 Gray Code.java Medium Java []

52 Group Anagrams.java Medium Java []

53 Group Shifted Strings.java Easy Java []

54 H-Index II.java Medium Java []

55 H-Index.java Medium Java []

56 Hamming Distance.java Easy Java []

57 Happy Number.java Easy Java []

58 Hash Function.java Easy Java []

59 HashHeap.java Hard Java []

60 HashWithArray.java Easy Java []

61 HashWithCustomizedClass(LinkedList).java Medium Java []

62 Heapify.java Medium Java []

63 Heaters.java Easy Java []

64 Identical Binary Tree.java Easy Java []

65 Implement Queue by Two Stacks.java N/A Java []

66 Implement Stack by Two Queues.java Easy Java []

67 Implement Stack using Queues.java Easy Java []

68 Implement Stack.java Easy Java []

69 Implement strStr().java N/A Java []

70 Implement Trie (Prefix Tree).java Medium Java []

71 IndexMatch.java Easy Java []

72 Inorder Successor in Binary Search Tree.java Medium Java []

73 Insert Interval.java Easy Java []

74 Insert Node in a Binary Search Tree .java Easy Java []

75 Insertion Sort List.java N/A Java []

76 Integer to English Words.java N/A Java []

77 Interleaving Positive and Negative Numbers.java N/A Java []

78 Intersection of Two Arrays.java Easy Java []

79 Intersection of Two Linked Lists.java Easy Java []

80 Interval Minimum Number.java Medium Java []

81 Interval Sum II.java Hard Java []

82 Interval Sum.java Medium Java []

83 Invert Binary Tree.java Easy Java []

84 Isomorphic Strings.java Easy Java []

85 Jump Game II.java Hard Java []

86 Kth Largest Element.java Medium Java []

87 Kth Smallest Element in a BST.java N/A Java []

88 Kth Smallest Sum In Two Sorted Arrays.java Hard Java []

89 Largest Number.java N/A Java []

90 Last Position of Target.java N/A Java []

91 Length of Last Word.java N/A Java []

92 Longest Common Prefix.java Medium Java []

93 Longest Common Substring.java N/A Java []

94 Longest Consecutive Sequence.java N/A Java []

95 Longest Increasing Continuous subsequence II.java N/A Java []

96 Longest Increasing Continuous subsequence.java Easy Java []

97 Longest Palindromic Substring.java Medium Java []

98 Longest Univalue Path.java Easy Java []

99 Longest Word in Dictionary.java Easy Java []

100 Longest Words.java N/A Java []

101 Lowest Common Ancestor II.java Easy Java []

102 Lowest Common Ancestor of a Binary Search Tree.java Medium Java []

103 Lowest Common Ancestor.java Easy Java []

104 LRU Cache.java Hard Java []

105 Majority Number II.java Medium Java []

106 Majority Number III.java Medium Java []

107 Matrix Zigzag Traversal.java Easy Java []

108 Max Area of Island.java Easy Java []

109 Maximum Depth of Binary Tree.java Easy Java []

110 Maximum Subarray III.java N/A Java []

111 Maximum Subarray.java Easy Java []

112 Maximum SubarrayII.java N/A Java []

113 MaximumSubarrayII.java N/A Java []

114 Median of two Sorted Arrays.java Hard Java []

115 Median.java N/A Java []

116 Merge Intervals.java Easy Java []

117 Merge k Sorted Arrays.java Medium Java []

118 Merge k Sorted Lists.java Medium Java []

119 Merge Sorted Array II.java N/A Java []

120 Merge Sorted Array.java Easy Java []

121 Merge Two Binary Trees.java Easy Java []

122 Merge Two Sorted Lists.java Easy Java []

123 Middle of Linked List.java N/A Java []

124 Minimum Absolute Difference in BST.java Easy Java []

125 Minimum Height Trees.java N/A Java []

126 Minimum Subarray.java N/A Java []

127 MinimumDepthOfBinaryTree.java Easy Java []

128 Missing Ranges.java N/A Java []

129 Multiply Strings.java Medium Java []

130 Next Permutation.java Medium Java []

131 Nim Game.java Easy Java []

132 NQueens.java N/A Java []

133 NQueensII.java N/A Java []

134 Nth to Last Node in List.java N/A Java []

135 Number Triangles.java N/A Java []

136 O(1) Check Power of 2.java N/A Java []

137 One Edit Distance.java Medium Java []

138 Paint Fence.java N/A Java []

139 Palindrome Linked List.java N/A Java []

140 Palindrome Partitioning.java N/A Java []

141 Palindrome Permutation II.java Medium Java []

142 Palindrome Permutation.java Easy Java []

143 Partition Array by Odd and Even.java N/A Java []

144 Partition Array.java N/A Java []

145 Partition List.java N/A Java []

146 Pascal's Triangle II.java Easy Java []

147 Peeking Iterator.java N/A Java []

148 Permutation Index.java Easy Java []

149 Permutation Sequence.java Medium Java []

150 Permutations II.java Medium Java []

151 Permutations.java Medium Java []

152 Populating Next Right Pointers in Each Node II.java Hard Java []

153 Product of Array Exclude Itself.java N/A Java []

154 QuickSort.java Easy Java []

155 Recover Rotated Sorted Array.java N/A Java []

156 Rehashing.java Medium Java []

157 Remove Duplicates from Sorted Array.java Easy Java []

158 Remove Duplicates from Sorted List II.java N/A Java []

159 Remove Duplicates from Sorted List.java Easy Java []

160 Remove Duplicates from Unsorted List.java N/A Java []

161 Remove Invalid Parentheses.java Hard Java []

162 Remove Linked List Elements.java N/A Java []

163 Remove Node in Binary Search Tree.java Hard Java []

164 Reorder List.java N/A Java []

165 Reshape the Matrix.java Easy Java []

166 Restore IP Addresses.java N/A Java []

167 Reverse Linked List II .java N/A Java []

168 Reverse Linked List.java Easy Java []

169 Reverse String.java Easy Java []

170 Reverse Words in a String II.java Medium Java []

171 Reverse Words in a String.java Medium Java []

172 Roman to Integer.java Easy Java []

173 Rotate Image.java Medium Java []

174 Rotate List.java N/A Java []

175 Rotate String.java N/A Java []

176 Russian Doll Envelopes.java N/A Java []

177 Search a 2D Matrix II.java N/A Java []

178 Search a 2D Matrix.java N/A Java []

179 Search for a Range.java N/A Java []

180 Search Insert Position.java N/A Java []

181 Search Range in Binary Search Tree .java Medium Java []

182 Search Rotated in Sorted Array II.java N/A Java []

183 Search Rotated in Sorted Array.java Hard Java []

184 Segment Tree Build II.java Medium Java []

185 Segment Tree Build.java Medium Java []

186 Segment Tree Modify.java Medium Java []

187 Segment Tree Query II.java Medium Java []

188 Segment Tree Query.java Medium Java []

189 Serilization and Deserialization Of Binary Tree.java N/A Java []

190 Shortest Word Distance.java Easy Java []

191 Single Number II.java N/A Java []

192 Single Number III.java N/A Java []

193 Single Number.java Easy Java []

194 Singleton.java N/A Java []

195 Sliding Window Maximum.java N/A Java []

196 Sort Color.java N/A Java []

197 Sort Colors II.java N/A Java []

198 Sort Letters by Case.java N/A Java []

199 Sort List.java N/A Java []

200 Space Replacement.java N/A Java []

201 Stone Game.java N/A Java []

202 String Permutation.java Easy Java []

203 String to Integer(atoi).java Easy Java []

204 Strobogrammatic Number II.java Medium Java []

205 Strobogrammatic Number.java Easy Java []

206 StrStr.java N/A Java []

207 Subarray Sum Closest.java Medium Java []

208 Subarray Sum.java Easy Java []

209 Subset.java Medium Java []

210 Subsets II.java Medium Java []

211 Subtree.java Easy Java []

212 Summary Ranges.java N/A Java []

213 Symmetric Binary Tree.java Easy Java []

214 The Smallest Difference.java N/A Java []

215 Top K Frequent Elements.java Medium Java []

216 Top K Frequent Words.java Medium Java []

217 Topological Sorting.java Medium Java []

218 Total Occurrence of Target.java N/A Java []

219 Trailing Zeros.java N/A Java []

220 Tweaked Identical Binary Tree.java Easy Java []

221 Two Lists Sum.java N/A Java []

222 Two Strings Are Anagrams.java Easy Java []

223 Ugly Number II.java N/A Java []

224 Ugly Number.java Medium Java []

225 Unique Binary Search Tree II.java N/A Java []

226 Unique Characters.java N/A Java []

227 Unique Word Abbreviation.java N/A Java []

228 Valid Palindrome.java Easy Java []

229 Valid Parentheses.java Easy Java []

230 Valid Sudoku.java Easy Java []

231 Word Break.java Medium Java []

232 Word Ladder II.java Hard Java []

233 Word Ladder.java Medium Java []

234 Word Pattern.java Easy Java []

235 Zigzag Iterator.java N/A Java []

236 Find Anagram Mappings.java Easy Java [Hash Table]

237 Judge Route Circle.java Easy Java [String]

238 Island Perimeter.java Easy Java [Hash Table]

239 First Unique Character in a String.java Easy Java [Hash Table, String]

240 Power of Three.java Easy Java [Math]

241 Plus One.java Easy Java [Array, Math]

242 Power of Two.java Easy Java [Bit Manipulation, Math]

243 Reverse Vowels of a String.java Easy Java [String, Two Pointers]

244 Guess Number Higher or Lower.java Easy Java [Binary Search]

245 Encode and Decode TinyURL.java Medium Java [Hash Table, Math]

246 Wiggle Sort.java Medium Java [Array, Sort]

247 Queue Reconstruction by Height.java Medium Java [Greedy]

248 2 Sum.java Easy Java [Array, Hash Table]

249 2 Sum II - Input array is sorted.java Medium Java [Array, Binary Search, Two Pointers]

250 2 Sum II.java Medium Java [Array, Binary Search, Two Pointers]

251 Coin Change.java Medium Java [DP]

252 Jump Game.java Medium Java [Array, Greedy]

253 Maximum Product Subarray.java Medium Java [Array, DP]

254 3 Sum Closest.java Medium Java [Array, Two Pointers]

255 Triangle Count.java Medium Java [Array]

256 3 Sum.java Medium Java [Array, Two Pointers]

257 4 Sum.java Medium Java [Hash Table]

258 k Sum.java Hard Java [DP]

259 Longest Continuous Increasing Subsequence.java Easy Java [Array, DP]

260 Longest Increasing Subsequence.java Medium Java [Binary Search, DP, Memoization, Sequence DP]

261 Unique Binary Search Tree.java Medium Java [DP, Tree]

262 Trim a Binary Search Tree.java Easy Java [Tree]

263 Unique Paths II.java Medium Java [Array, DP]

264 Counting Bits.java Medium Java [Bit Manipulation, DP]

265 Bomb Enemy.java Medium Java [DP]

266 Paint House.java Easy Java [DP]

267 Decode Ways.java Review Java [DP, String]

268 House Robber.java Easy Java [DP, Sequence DP]

269 House Robber II.java Medium Java [DP, Sequence DP]

270 Best Time to Buy and Sell Stock I.java Easy Java [Array, DP]

271 Best Time to Buy and Sell Stock II.java Easy Java [Array, Greedy]

272 Best Time to Buy and Sell Stock III .java Hard Java [Array, DP]

273 Best Time to Buy and Sell Stock IV.java Hard Java [DP]

274 Paint House II.java Review Java [DP]

275 3 Sum Smaller.java Medium Java [Array, Two Pointers]

276 Array Partition I.java Easy Java [Array]

277 1-bit and 2-bit Characters.java Easy Java [Array]

278 Non-decreasing Array.java Easy Java [Array]

279 Max Consecutive Ones.java Easy Java [Array]

280 Find All Numbers Disappeared in an Array.java Easy Java [Array]

281 Maximum Average Subarray I.java Easy Java [Array]

282 Largest Number At Least Twice of Others.java Easy Java [Array]

283 Toeplitz Matrix.java Easy Java [Array]

284 Backpack.java Medium Java [DP]

285 Sum of Two Integers.java Easy Java [Bit Manipulation]

286 Swap Bits.java Easy Java [Bit Manipulation]

287 Update Bits.java Medium Java [Bit Manipulation]

288 Maximum XOR of Two Numbers in an Array.java Medium Java [Bit Manipulation, Trie]

289 Perfect Squares.java Medium Java [BFS, DP, Math]

290 Palindrome Partitioning II.java Hard Java [DP]

291 Backpack V.java Medium Java [DP]

292 Backpack VI.java Medium Java [DP]

293 Copy Books.java Hard Java [Binary Search, DP]

294 Valid Perfect Square.java Review Java [Binary Search, Math]

295 Intersection of Two Arrays II.java Easy Java [Binary Search, Hash Table, Sort, Two Pointers]

296 Backpack II.java Medium Java [DP]

297 Backpack III.java Review Java [DP]

298 Longest Palindromic Subsequence.java Medium Java [DP]

299 Burst Balloons.java Hard Java [DP, Divide and Conquer]

300 Scramble String.java Hard Java [DP, String]

301 Binary Search Tree Iterator.java Medium Java [Design, Stack, Tree]

302 Flatten Nested List Iterator.java Medium Java [Design, Stack]

303 Best Time to Buy and Sell Stock with Cooldown.java Medium Java [DP]

304 Find Peak Element.java Medium Java [Array, Binary Search]

305 Longest Common Subsequence.java Medium Java [DP]

306 Interleaving String.java Hard Java [DP, String]

307 Letter Combinations of a Phone Number.java Medium Java [Backtracking, String]

308 Edit Distance.java Hard Java [DP, String]

309 Distinct Subsequences.java Hard Java [DP, String]

310 Regular Expression Matching.java Review Java [Backtracking, DP, String]

311 Majority Element.java Easy Java [Array, Bit Manipulation, Divide and Conquer]

312 Wildcard Matching.java Hard Java [Backtracking, DP, Greedy, String]

313 Ones and Zeroes.java Hard Java [DP]

314 Pow(x,n).java Medium Java [Binary Search, Math]

315 Word Break II.java Review Java [Backtracking, DP]

316 Nested List Weight Sum.java Easy Java [DFS]

317 Same Tree.java Easy Java [DFS, Tree]

318 Convert Sorted Array to Binary Search Tree.java Easy Java [DFS, Tree]

319 Binary Tree Maximum Path Sum.java Review Java [DFS, Tree]

320 Construct Binary Tree from Inorder and Preorder Traversal.java Medium Java [Array, DFS, Tree]

321 Path Sum.java Easy Java [DFS, Tree]

322 Add Binary.java Easy Java [Math, String]

323 Add Digits.java Easy Java [Math]

324 Add Two Numbers.java Medium Java [Linked List, Math]

325 Add Two Numbers II.java Medium Java [Linked List]

326 Balanced Binary Tree.java Medium Java [DFS, Tree]

327 Valid Anagram.java Easy Java [Hash Table, Sort]

328 Populating Next Right Pointers in Each Node.java Medium Java [DFS, Tree]

329 Validate Binary Search Tree.java Medium Java [DFS, Tree]

330 Convert Sorted List to Binary Search Tree.java Medium Java [DFS, Linked List]

331 Flatten Binary Tree to Linked List.java Medium Java [Binary Tree, DFS]

332 Binary Tree Paths.java Easy Java [Binary Tree, DFS]

333 Minimum Size Subarray Sum.java Medium Java [Array, Binary Search, Two Pointers]

334 Clone Graph.java Medium Java [BFS, DFS, Graph]

335 Longest Substring Without Repeating Characters.java Medium Java [Hash Table, String, Two Pointers]

336 Minimum Window Substring.java Hard Java [Hash Table, String, Two Pointers]

337 Linked List Cycle.java Easy Java [Linked List, Two Pointers]

338 Remove Nth Node From End of List.java Medium Java [Linked List, Two Pointers]

339 Longest Substring with At Most K Distinct Characters.java Medium Java [Hash Table, String]

340 Linked List Cycle II.java Medium Java [Linked List, Two Pointers]

341 Kth Smallest Number in Sorted Matrix.java Medium Java [Binary Search, Heap]

342 Find Minimum in Rotated Sorted Array.java Medium Java [Array, Binary Search]

343 Find Minimum in Rotated Sorted Array II.java Hard Java [Array, Binary Search]

344 Connecting Graph.java Medium Java [Union Find]

345 Connecting Graph II.java Medium Java [Union Find]

346 Connecting Graph III.java Medium Java [Union Find]

347 Number of Islands.java Medium Java [BFS, DFS, Union Find]

348 Number of Islands II.java Hard Java [Union Find]

349 Graph Valid Tree.java Medium Java [BFS, DFS, Graph, Union Find]

350 Surrounded Regions.java Review Java [BFS, DFS, Union Find]

351 Implement Trie.java Medium Java [Design, Trie]

352 Add and Search Word.java Medium Java [Backtracking, Design, Trie]

353 Word Search II.java Hard Java [Backtracking, DFS, Trie]

354 Word Search.java Medium Java [Array, Backtracking]

355 Word Squares.java Hard Java [Backtracking, Trie]

356 Trapping Rain Water.java Hard Java [Array, Stack, Two Pointers]

357 Trapping Rain Water II.java Hard Java [BFS, Heap]

358 Data Stream Median.java Hard Java [Design, Heap]

359 Sliding Window Median.java Hard Java [Design, Heap]

360 Min Stack.java Easy Java [Design, Stack]

361 Implement Queue using Stacks.java Easy Java [Design, Stack]

362 Expression Expand.java Medium Java [DFS, Divide and Conquer, Stack]

363 Largest Rectangle in Histogram.java Hard Java [Array, Stack]

364 Max Tree.java Medium Java [Stack, Tree]

365 Reverse Integer.java Easy Java [Math]

366 Swap Nodes in Pairs.java Medium Java [Linked List]

367 Find Peak Element II.java Hard Java [Binary Search, DFS, Divide and Conquer]

368 Sqrt(x).java Easy Java [Binary Search, Math]

369 First Bad Version.java Easy Java [Binary Search]

370 Wood Cut.java Medium Java [Binary Search]

371 Find the Duplicate Number.java Medium Java [Array, Binary Search, Two Pointers]

372 Palindrome Pairs.java Hard Java [Hash Table, String, Trie]

373 Game of Life.java Medium Java [Array]

374 Maximum Average Subarray II.java Review Java [Array, Binary Search]

375 Meeting Rooms.java Easy Java [Sort, Sweep Line]

376 Number of Airplane in the sky.java Medium Java [Array, Interval, Sort, Sweep Line]

377 Meeting Rooms II.java Medium Java [Greedy, Heap, Sort, Sweep Line]

378 Building Outline.java Review Java [Binary Indexed Tree, Divide and Conquer, Heap, Segment Tree, Sweep Line]

379 Unique Path.java Medium Java [Array, Coordinate DP, DP]

380 Maximal Rectangle.java Hard Java [Array, DP, Hash Table, Stack]

381 Maximal Square.java Medium Java [Coordinate DP, DP]

382 Minimum Path Sum.java Medium Java [Array, Coordinate DP, DP]

383 House Robber III.java Hard Java [DFS, DP, Status DP, Tree]

384 Longest Increasing Path in a Matrix.java Hard Java [DFS, DP, Memoization, Topological Sort]

385 Coins in a Line.java Medium Java [DP, Game Theory, Greedy]

386 Coins in a Line II.java Medium Java [Array, DP, Game Theory, Memoization, MiniMax]

387 Binary Tree Inorder Traversal.java Easy Java [Hash Table, Stack, Tree]

388 Path Sum II.java Easy Java [DFS, Tree]

389 Binary Tree Postorder Traversal.java Medium Java [Stack, Tree, Two Stacks]

390 Change to Anagram.java Easy Java [String]

391 Classical Binary Search.java Easy Java [Binary Search]

392 Climbing Stairs.java Easy Java [DP, Memoization, Sequence DP]

393 Coins in a Line III.java Hard Java [Array, DP, Game Theory, Interval DP, Memoization]

394 Closest Binary Search Tree Value.java Easy Java [Binary Search, Tree]

395 Compare Version Numbers.java Medium Java [String]

396 Count Complete Tree Nodes.java Medium Java [Binary Search, Tree]

397 Course Schedule.java Medium Java [BFS, DFS, Graph, Topological Sort]

398 Course Schedule II.java Medium Java [BFS, DFS, Graph, Topological Sort]


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK