Coding Puzzles, 2nd edition: Thinking in code
- Length: 304 pages
- Edition: 2
- Language: English
- Publisher: CreateSpace Independent Publishing Platform
- Publication Date: 2014-10-03
- ISBN-10: 1502712458
- ISBN-13: 9781502712455
- Sales Rank: #1254428 (See Top 100 Books)
If you are preparing the programming interview for a software engineer position, you might want to look at this book. Make sure you have basic knowledge of data structure and algorithm, because this book is mostly focus on how to resolve the coding puzzles with existing data structure and algorithm. If you need some refresh of data structure and algorithm, there is a good book you might want to take a look first, by Thomas H. Cormen. What the 2nd edition brings to you: 1. 136 problems in Recursion, Divid and Conquer, Binary Search, Tree Traversal, Graph Traversal, Dynamic Programming, String Search etc, which is more than enough for preparing a software engineer interview. Every puzzle contains a detailed explanation and some implementations. 2. An Appendix in the end of this book for designing question preparation. This appendix includes some selected papers, books I had read in the past two years. And I think this is the most important change in the second edition. Learning what current industry does and keeping improving the design skill will help yourself in a long-term career. Again, this book is used to present how to analysis a problem and link the inside the challenge with some existing algrithoms. The goal of this book is to improve the problem solving ability, not to be a collection of latest interview questions from Facebook, Google etc. Hope this book can help you get your desired offer.
Table of Contents
1. 2 Sum
2. 3 Sum
3. 3Sum Closest
4. 4Sum
5. Add Binary
6. Add Two Numbers
7. Anagrams
8. Best Time to Buy and Sell Stock
9. Best Time to Buy and Sell Stock II
10. Best Time to Buy and Sell Stock III
11. Balanced Binary Tree
12. Binary Tree Preorder Traversal
13. Binary Tree Inorder Traversal
14. Binary Tree Level Order Traversal
15. Binary Tree Maximum Path Sum
16. Climbing Stairs
17. Clone Graph
18. Combination Sum
19. Combination Sum II
20. Combinations
21. Construct Binary Tree from Preorder and Inorder
22. Container With Most Water
23. Convert Sorted Array to Binary Search Tree
24. Convert Sorted List to Binary Search Tree
25. Copy List with Random Pointer
26. Count and Say
27. Decode Ways
28. Distinct Subsequences
29. Divide Two Integers
30. Edit Distance
31. Evaluate Reverse Polish Notation
32. First Missing Positive
33. Flatten Binary Tree to Linked List
34. Gas Station
35. Generate Parentheses
36. Gray Code
37. Implement strStr()
38. Insert Interval
39. Integer to Roman
40. Interleaving String
41. Jump Game
42. Jump Game II
43. Largest Rectangle in Histogram
44. Length of Last Word
45. Letter Combinations of a Phone Number
46. Linked List Cycle
47. Linked List Cycle II
48. Longest Common Prefix
49. Longest Consecutive Sequence
50. Longest Palindromic Substring
51. Longest Substring Without Repeating Characters
52. Longest Valid Parentheses
53. LRU Cache
54. Maximum Depth of Binary Tree
55. Max Points on a Line
56. Maximum Subarray
57. Median of Two Sorted Arrays
58. Merge Intervals
59. Merge k Sorted Lists
60. Merge Sorted Array
61. Merge Two Sorted Lists
62. Minimum Depth of Binary Tree
63. Minimum Path Sum
64. Minimum Window Substring
65. Multiply Strings
66. Next Permutation
67. Palindrome Number
68. Palindrome Partitioning
69. Palindrome Partitioning II
70. Partition List
71. Pascal’s Triangle II
72. Path Sum
73. Path Sum II
74. Permutations
75. Permutations II
76. Permutation Sequence
77. Plus One
78. Populating Next Right Pointers in Each Node
79. Populating Next Right Pointers in Each Node II
80. Recover Binary Search Tree
81. Pow(x, n)
82. Remove Duplicates from Sorted Array
83. Remove Duplicates from Sorted Array II
84. Remove Duplicates from Sorted List
85. Remove Duplicates from Sorted List II
86. Remove Element
87. Remove Nth Node From End of List
88. Reorder List
89. Restore IP Addresses
90. Reverse Integer
91. Reverse Linked List II
92. Reverse Nodes in k-Group
93. Roman To Integer
94. Rotate Image
95. Rotate List
96. Scramble String
97. *Search a 2D Matrix
98. Search for a Range
99. Search in Rotated Sorted Array
100. Search in Rotated Sorted Array II
101. Search Insert Position
102. Serialize and De-serialize a tree
103. Set Matrix Zeroes
104. Simplify Path
105. Single Number
106. Single Number II
107. Sort Colors
108. Sort List
109. Spiral Matrix
110. Spiral Matrix II
111. Sqrt(x)
112. String to Integer (atoi)
113. Subsets
114. Subsets II
115. Substring with Concatenation of All Words
116. Sum Root to Leaf Numbers
117. Surrounded Regions
118. Swap Nodes in Pairs
119. Symmetric Tree
120. Text Justification
121. Trapping Rain Water
122. Triangle
123. Unique Binary Search Trees
124. Unique Binary Search Trees II
125. Unique Paths
126. Unique Paths II
127. Upcase and lowcase permutation
128. Valid Palindrome
129. Valid Parentheses
130. Valid Sudoku
131. Validate Binary Search Tree
132. Wildcard Matching
133. Word Break
134. WordBreak II
135. Word Search
136. ZigZag Conversion
Appendix – CodingTMD’s Reading List