/Algorithm-and-Leetcode

I listed All the questions that I wrote at least twice in https://seanforfun.github.io/leetcode/. Though all my solutions can be found at leetcode column. I also made my own conclusions about data structure in this repository, all files will be synchronized on my github.io.

Primary LanguageJava

Algorithm Learning

LeetCode

1.Two Sum

2.Add Two Numbers

3.Longest Substring Without Repeating Characters

4.Median of Two Sorted Arrays

5. Longest Palindromic Substring

6. ZigZag Conversion

7. Reverse Integer

8. String to Integer (atoi)

9. Palindrome Number

10. Regular Expression Matching

11. Container With Most Water

12. Integer to Roman

13. Roman to Integer

14.LongestCommonPrefix

15. 3Sum

16. 3Sum Closest

17. Letter Combinations of a Phone Number

18. 4Sum

19. Remove Nth Node From End of List

20. Valid Parentheses

21. Merge Two Sorted Lists

22. Generate Parentheses

23. Merge k Sorted Lists

24. Swap Nodes in Pairs

25. Reverse Nodes in k-Group

26. Remove Duplicates from Sorted Array

27. Remove Element

28. Implement strStr()

29. Divide Two Integers

30. Substring with Concatenation of All Words

31. Next Permutation

32. Longest Valid Parentheses

33. Search in Rotated Sorted Array

34. Find First and Last Position of Element in Sorted Array

35. Search Insert Position

36. Valid Sudoku

37. Sudoku Solver

38. Count and Say

39. Combination Sum

40. Combination Sum II

41. First Missing Positive

42. Trapping Rain Water

43. Multiply Strings

44. Wildcard Matching

45. Jump Game II

46. Permutations

47. Permutations II

48. Rotate Image

49. Group Anagrams

50. Pow(x, n)

51. N-Queens

52. N-Queens II

53. Maximum Subarray

54. Spiral Matrix

55. Jump Game

56. Merge Intervals

57. Insert Interval

58. Length of Last Word

59. Spiral Matrix II

60. Permutation Sequence

61. Rotate List

62. Unique Paths

63. Unique Paths II

64. Minimum Path Sum

65. Valid Number

66. Plus One

67. Add Binary

69. Sqrt(x)

70. Climbing Stairs

71. Simplify Path

72. Edit Distance

73. Set Matrix Zeroes

74. Search a 2D Matrix

75. Sort Colors

76. Minimum Window Substring

77. Combinations

78. Subsets

79. Word Search

80. Remove Duplicates from Sorted Array II

81. Search in Rotated Sorted Array II

82. Remove Duplicates from Sorted List II

83. Remove Duplicates from Sorted List

84. Largest Rectangle in Histogram

85. Maximal Rectangle

86. Partition List

88. Merge Sorted Array

89. Gray Code

90. Subsets II

91. Decode Ways

92. Reverse Linked List II.md

93. Restore IP Addresses

94. Binary Tree Inorder Traversal

95. Unique Binary Search Trees II

96. Unique Binary Search Trees

97. Interleaving String

98. Validate Binary Search Tree

100. Same Tree

101. Symmetric Tree

102. Binary Tree Level Order Traversal

103. Binary Tree Zigzag Level Order Traversal

104. Maximum Depth of Binary Tree

105. Construct Binary Tree from Preorder and Inorder Traversal

106. Construct Binary Tree from Inorder and Postorder Traversal

107. Binary Tree Level Order Traversal II

108. Convert Sorted Array to Binary Search Tree

109. Convert Sorted List to Binary Search Tree

110. Balanced Binary Tree

111. Minimum Depth of Binary Tree

112. Path Sum

113. Path Sum II

114. Flatten Binary Tree to Linked List

115. Distinct Subsequences

116. Populating Next Right Pointers in Each Node

117. Populating Next Right Pointers in Each Node II

118. Pascal's Triangle

119. Pascal's Triangle II

120. Triangle

121. Best Time to Buy and Sell Stock

122. Best Time to Buy and Sell Stock II

123. Best Time to Buy and Sell Stock III

124. Binary Tree Maximum Path Sum

125. Valid Palindrome

126. Word Ladder II

127. Word Ladder

128. Longest Consecutive Sequence

129. Sum Root to Leaf Numbers

130. Surrounded Regions

131. Palindrome Partitioning

132. Palindrome Partitioning II

133. Clone Graph

134. Gas Station

136. Single Number

137. Single Number II

138. Copy List with Random Pointer

139. Word Break

140. Word Break II

141. Linked List Cycle

142. Linked List Cycle II

143. Reorder List

144. Binary Tree Preorder Traversal

145. Binary Tree Postorder Traversal

147. Insertion Sort List

148. Sort List

150. Evaluate Reverse Polish Notation

152. Maximum Product Subarray

153. Find Minimum in Rotated Sorted Array

154. Find Minimum in Rotated Sorted Array II

155. Min Stack

160. Intersection of Two Linked Lists

162. Find Peak Element

164. Maximum Gap

165. Compare Version Numbers

166. Fraction to Recurring Decimal

167. Two Sum II - Input array is sorted

168. Excel Sheet Column Title

169. Majority Element

171. Excel Sheet Column Number

172. Factorial Trailing Zeroes

173. Binary Search Tree Iterator

174. Dungeon Game

175. Combine Two Tables

176. Second Highest Salary

177. Nth Highest Salary

178. Rank Scores

179. Largest Number

180. Consecutive Numbers

181. Employees Earning More Than Their Managers

182. Duplicate Emails

183. Customers Who Never Order

184. Department Highest Salary

185. Department Top Three Salaries

187. Repeated DNA Sequences

189. Rotate Array

190. Reverse Bits

191. Number of 1 Bits

198. House Robber

199. Binary Tree Right Side View

200. Number of Islands

201. Bitwise AND of Numbers Range

202. Happy Number

203. Remove Linked List Elements

204. Count Primes

205. Isomorphic Strings

206. Reverse Linked List

207. Course Schedule

208. Implement Trie (Prefix Tree)

209. Minimum Size Subarray Sum

210. Course Schedule II

211. Add and Search Word - Data structure design

212. Word Search II

213. House Robber II

214. Shortest Palindrome

215. Kth Largest Element in an Array

216. Combination Sum III

217. Contains Duplicate

219. Contains Duplicate II

220. Contains Duplicate III

221. Maximal Square

222. Count Complete Tree Nodes

223. Rectangle Area

224. Basic Calculator

225. Implement Stack using Queues

226. Invert Binary Tree

227. Basic Calculator II

228. Summary Ranges

229. Majority Element II

230. Kth Smallest Element in a BST

231. Power of Two

232. Implement Queue using Stacks

234. Palindrome Linked List

235. Lowest Common Ancestor of a Binary Search Tree

236. Lowest Common Ancestor of a Binary Tree

237. Delete Node in a Linked List

238. Product of Array Except Self

239. Sliding Window Maximum

240. Search a 2D Matrix II

241. Different Ways to Add Parentheses

242. Valid Anagram

257. Binary Tree Paths

258. Add Digits

263. Ugly Number

264. Ugly Number II

268. Missing Number

274. H-Index

275. H-Index II

276. Paint Fence

278. First Bad Version

279. Perfect Squares

282. Expression Add Operators

283. Move Zeroes

284. Peeking Iterator

287. Find the Duplicate Number

289. Game of Life

290. Word Pattern

292. Nim Game

295.Find Median from Data Stream

297. Serialize and Deserialize Binary Tree

299. Bulls and Cows

300. Longest Increasing Subsequence

301. Remove Invalid Parentheses

303. Range Sum Query - Immutable

304. Range Sum Query 2D - Immutable

305. Number Of Island II

306. Additive Number

307. Range Sum Query - Mutable

309. Best Time to Buy and Sell Stock with Cooldown

310. Minimum Height Trees

312. Burst Balloons

313. Super Ugly Number

315. Count of Smaller Numbers After Self

LeetCode by Tag:

  1. Tag table from huahua

Advance

Trie Tree

BIT / Segment tree

Monotic stack

Search

Combination

Permutation

DFS

BFS

Partition

Dynamic Programming

Graph

Clone graph: hashtable + dfs

Grid + Connected Component

Topological Sort

Union Find Set / Disjoint Set

Bipartite

Cycle+Union-find

Shortest Path

BFS

Hamilton Path / DP

Union-find + connected component

Tree

Traversal

Collecting Node

Use both nodes, return one.

Binary Search

Algorithm(4th_Edition)

Reading notes of book Algorithm(4th Algorithm),ISBN: 9787115293800. All java realization codes are placed in different packages.

Search

Data Structure

I started learning the data struture systematically, I will list my notes in the order that I read the book.

  1. Binary Tree
  2. Complete Binary Tree
  3. Balanced Binary Tree
  4. Black Red Tree
  5. B Tree series
  • Blocking Queue
  1. Array Blocking Queue
  2. Linked Blocking Queue
  3. Priority Blocking Queue
  4. Delay Queue
  • Non Blocking Queue
  1. ConcurrentLinkedQueue
  1. HashMap
  2. ConcurrentHashMap
  1. Undirected Graph
  2. Directed Graph
  3. Minimun Spanning Trees
  4. Shortest Path
  1. Trie Tree
  2. KMP
  1. Array and String. (Question1_*)
  2. List. (Question2_*)
  3. Stack and Queue. (Question3_*)
  4. Tree and Graph. (Question4_*)
  5. Bit Operations. (Question5_*)
  6. Recursive and Dynamic programming. (Question9_*)