- Binary Search
- search the ( exact ) ( position / element )
- search the ( first / last ) ( position / element )
- search with complex conditions
- binary search the result range with a verification function
# | Title | Youtube | bilibili | ixiagua |
---|---|---|---|---|
0 | All In One | Youtube | bilibili | ixigua |
- Template
public int searchLastPosition(int[] nums, int target) {
if (nums == null || nums.length == 0) {
return -1;
}
int left = 0;
int right = nums.length - 1;
// avoid dead loop
while (left + 1 < right) {
// avoid integer overflow
final int mid = left + ((right - left) >> 1);
if (nums[mid] == target) {
left = mid;
} else if (nums[mid] < target) {
left = mid;
} else {
right = mid;
}
}
// last position
if (nums[right] == target) {
return right;
}
if (nums[left] == target) {
return left;
}
return -1;
}
- search the ( exact ) ( position / element ).
- search the ( first / last ) ( position / element ).
- search with complex conditions
# | Title | Java | Kotlin | Difficulty | Youtube | bilibili | ixiagua |
---|---|---|---|---|---|---|---|
1 | 33. Search in Rotated Sorted Array | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
2 | 81. Search in Rotated Sorted Array II | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
3 | 153. Find Minimum in Rotated Sorted Array & 154 | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
4 | 275. H-Index II | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
5 | 658. Find K Closest Elements | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
:---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |
6 | 710. Random Pick with Blacklist | Java | Kotlin | Hard | Youtube | bilibili | ixigua |
- binary search the result range with a verification function
- other
# | Title | Java | Kotlin | Difficulty | Youtube | bilibili | ixiagua |
---|---|---|---|---|---|---|---|
1 | 349. Intersection of Two Arrays | Java | Kotlin | Easy | Youtube | bilibili | ixigua |
2 | 29. Divide Two Integers | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
3 | 50. Pow(x, n) | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
4 | 209. Minimum Size Subarray Sum | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
5 | 222. Count Complete Tree Nodes | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
6 | 230. Kth Smallest Element in a BST | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
7 | 287. Find the Duplicate Number | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
8 | 436. Find Right Interval | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
9 | 927. Three Equal Parts | Java | Kotlin | Hard | Youtube | bilibili | ixigua |
- Breadth First Search
- BFS in Binary Tree
- BFS in Graph ( Topological Sorting )
- BFS in matrix
# | Title | Youtube | bilibili | ixiagua |
---|---|---|---|---|
0 | All In One | Youtube | bilibili | ixigua |
- BFS in Binary Tree
# | Title | Java | Kotlin | Difficulty | Youtube | bilibili | ixiagua |
---|---|---|---|---|---|---|---|
1 | 129. Sum Root to Leaf Numbers | Java | Kotlin | Easy | Youtube | bilibili | ixigua |
2 | 1022. Sum of Root To Leaf Binary Numbers | Java | Kotlin | Easy | Youtube | bilibili | ixigua |
3 | 107. Binary Tree Level Order Traversal II | Java | Kotlin | Easy | Youtube | bilibili | ixigua |
4 | 101. Symmetric Tree | Java | Kotlin | Easy | Youtube | bilibili | ixigua |
5 | 103. Binary Tree Zigzag Level Order Traversal | Java | Kotlin | Easy | Youtube | bilibili | ixigua |
6 | 662. Maximum Width of Binary Tree | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
7 | 199. Binary Tree Right Side View | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
8 | 429. N-ary Tree Level Order Traversal | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
9 | 863. All Nodes Distance K in Binary Tree | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
10 | 987. Vertical Order Traversal of a Binary Tree | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
- BFS in Graph ( Topological Sorting )
# | Title | Java | Kotlin | Difficulty | Youtube | bilibili | ixiagua |
---|---|---|---|---|---|---|---|
1 | 127. Word Ladder | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
2 | 126. Word Ladder II | Java | Kotlin | Hard | Youtube | bilibili | ixigua |
3 | 133. Clone Graph | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
4 | 210. Course Schedule II | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
5 | 301. Remove Invalid Parentheses | Java | Kotlin | Hard | Youtube | bilibili | ixigua |
6 | 310. Minimum Height Trees | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
7 | 743. Network Delay Time | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
8 | 1129. Shortest Path with Alternating Colors | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
9 | 1311. Get Watched Videos by Your Friends | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
10 | 1345. Jump Game IV | Java | Kotlin | Hard | Youtube | bilibili | ixigua |
- BFS in matrix
- Tree
- Preorder / Inorder / postorder traversal (and construct)
- Data Structure
- Depth First Search, return result of children
- Breadth First Search
# | Title | Youtube | bilibili | ixiagua |
---|---|---|---|---|
0 | All In One | Youtube | bilibili | ixigua |
- Preorder / Inorder / postorder traversal (and construct)
- Data Structure
# | Title | Java | Kotlin | Difficulty | Youtube | bilibili | ixiagua |
---|---|---|---|---|---|---|---|
*1 | 208. Implement Trie (Prefix Tree) | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
2 | 307. Range Sum Query - Mutable | Java | - | Medium | Youtube | bilibili | ixigua |
- Depth First Search, return result of children
- Breadth First Search
# | Title | Java | Kotlin | Difficulty | Youtube | bilibili | ixiagua |
---|---|---|---|---|---|---|---|
1 | 623. Add One Row to Tree | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
2 | 655. Print Binary Tree | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
3 | 684. Redundant Connection | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
*4 | 685. Redundant Connection II | Java | Kotlin | Hard | Youtube | bilibili | ixigua |
5 | 919. Complete Binary Tree Inserter | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
6 | 958. Check Completeness of a Binary Tree | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
7 | 988. Smallest String Starting From Leaf | Java | - | Medium | Youtube | bilibili | ixigua |
8 | 1261. Find Elements in a Contaminated Binary Tree | Java | - | Medium | Youtube | bilibili | ixigua |
- Depth First Search
- DFS - Permutation
- DFS - Combination ** & Backtracking **
- DFS - Graph (Tree) **
- DFS - Union Find
- DFS - Other
# | Title | Youtube | bilibili | ixiagua |
---|---|---|---|---|
0 | All In One | Youtube | bilibili | ixigua |
- DFS - Permutation
# | Title | Java | Kotlin | Difficulty | Youtube | bilibili | ixiagua |
---|---|---|---|---|---|---|---|
1 | 46. Permutations | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
2 | 47. Permutations II | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
- DFS - Combination ** & Backtracking **
# | Title | Java | Kotlin | Difficulty | Youtube | bilibili | ixiagua |
---|---|---|---|---|---|---|---|
1 | 90. Subsets II | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
2 | 980. Unique Paths III | Java | Kotlin | Hard | Youtube | bilibili | ixigua |
3 | 797. All Paths From Source to Target | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
4 | 216. Combination Sum III | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
5 | 77. Combinations | Java | - | Medium | Youtube | bilibili | ixigua |
6 | 491. Increasing Subsequences | Java | - | Medium | Youtube | bilibili | ixigua |
**7 | 51. N-Queens | Java | - | Medium | Youtube | bilibili | ixigua |
**8 | 37. Sudoku Solver | Java | - | Medium | Youtube | bilibili | ixigua |
- DFS - Graph (Tree & Grid) **
# | Title | Java | Kotlin | Difficulty | Youtube | bilibili | ixiagua |
---|---|---|---|---|---|---|---|
*1 | 329. Longest Increasing Path in a Matrix | Java | - | Medium | Youtube | bilibili | ixigua |
2 | 1519. Number of Nodes in the Sub-Tree With the Same Label | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
3 | 514. Freedom Trail | Java | - | Medium | Youtube | bilibili | ixigua |
4 | 576. Out of Boundary Paths | Java | - | Medium | Youtube | bilibili | ixigua |
5 | 721. Accounts Merge | Java | - | Medium | Youtube | bilibili | ixigua |
6 | 802. Find Eventual Safe States | Java | - | Medium | Youtube | bilibili | ixigua |
*7 | 756. Pyramid Transition Matrix | Java | - | Medium | Youtube | bilibili | ixigua |
8 | 1034. Coloring A Border | Java | - | Medium | Youtube | bilibili | ixigua |
**9 | 1254. Number of Closed Islands | Java | - | Medium | Youtube | bilibili | ixigua |
10 | 1376. Time Needed to Inform All Employees | Java | - | Medium | Youtube | bilibili | ixigua |
11 | 1377. Frog Position After T Seconds | Java | - | Medium | Youtube | bilibili | ixigua |
**12 | 827. Making A Large Island | Java | - | Medium | Youtube | bilibili | ixigua |
- DFS - Union Find
# | Title | Java | Kotlin | Difficulty | Youtube | bilibili | ixiagua |
---|---|---|---|---|---|---|---|
1 | 547. Friend Circles | Java | - | Medium | Youtube | bilibili | ixigua |
2 | 947. Most Stones Removed with Same Row or Column | Java | - | Medium | Youtube | bilibili | ixigua |
*3 | 1722. Minimize Hamming Distance After Swap Operations | Java | - | Medium | Youtube | bilibili | ixigua |
- DFS - Other
# | Title | Java | Kotlin | Difficulty | Youtube | bilibili | ixiagua |
---|---|---|---|---|---|---|---|
1 | 472. Concatenated Words | Java | - | Medium | Youtube | bilibili | ixigua |
*2 | 473. Matchsticks to Square | Java | - | Medium | Youtube | bilibili | ixigua |
*3 | 488. Zuma Game | Java | - | Hard | Youtube | bilibili | ixigua |
4 | 17. Letter Combinations of a Phone Number | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
5 | 494. Target Sum | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
6 | 546. Remove Boxes | Java | - | Hard | Youtube | bilibili | ixigua |
7 | 851. Loud and Rich | Java | - | Medium | Youtube | bilibili | ixigua |
8 | 959. Regions Cut By Slashes | Java | - | Medium | Youtube | bilibili | ixigua |
9 | 1766. Tree of Coprimes | Java | - | Medium | Youtube | bilibili | ixigua |
10 | 1268. Search Suggestions System | Java | - | Medium | Youtube | bilibili | ixigua |
11* | 97. Interleaving String | Java | - | Medium | Youtube | bilibili | ixigua |
- Dynamic Programming
- Other
- Graph
# | Title | Java | Kotlin | Difficulty | Youtube | bilibili | ixiagua |
---|---|---|---|---|---|---|---|
1 | 886. Possible Bipartition | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
2 | 785. Is Graph Bipartite? | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
3 | 207. Course Schedule | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
4 | 787. Cheapest Flights Within K Stops | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
5 | 847. Shortest Path Visiting All Nodes | Java | Kotlin | Hard | Youtube | bilibili | ixigua |
6 | 399. Evaluate Division | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
7 | 1192. Critical Connections in a Network | Java | - | Medium | Youtube | bilibili | ixigua |
- Math
# | Title | Java | Kotlin | Difficulty | Youtube | bilibili | ixiagua |
---|
- Stack
# | Title | Java | Kotlin | Difficulty | Youtube | bilibili | ixiagua |
---|---|---|---|---|---|---|---|
1 | 316. Remove Duplicate Letters | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
2 | 735. Asteroid Collision | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
3 | 445. Add Two Numbers II | Java | - | Medium | Youtube | bilibili | ixigua |
4 | 456. 132 Pattern | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
5 | 1130. Minimum Cost Tree From Leaf Values | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
6 | 84. Largest Rectangle in Histogram | Java | - | Hard | Youtube | bilibili | ixigua |
7 | 1673. Find the Most Competitive Subsequence | Java | - | Medium | Youtube | bilibili | ixigua |
8 | 71. Simplify Path | Java | - | Medium | Youtube | bilibili | ixigua |
9 | 1249. Minimum Remove to Make Valid Parentheses | Java | - | Medium | Youtube | bilibili | ixigua |
10 | 856. Score of Parentheses | Java | - | Medium | Youtube | bilibili | ixigua |
11 | 32. Longest Valid Parentheses | Java | - | Medium | Youtube | bilibili | ixigua |
- Two Pointer
# | Title | Java | Kotlin | Difficulty | Youtube | bilibili | ixiagua |
---|---|---|---|---|---|---|---|
1 | 142. Linked List Cycle II | Java | Kotlin | Medium | Youtube | bilibili | ixigua |
- Deque
# | Title | Java | Kotlin | Difficulty | Youtube | bilibili | ixiagua |
---|---|---|---|---|---|---|---|
1 | 239. Sliding Window Maximum | Java | Kotlin | Hard | Youtube | bilibili | ixigua |
2 | 678. Valid Parenthesis String | Java | - | Medium | Youtube | bilibili | ixigua |
- Data Structure
# | Title | Java | Kotlin | Difficulty | Youtube | bilibili | ixiagua |
---|---|---|---|---|---|---|---|
1 | Binary Indexed Tree (Fenwick Tree) | - | - | Hard | Youtube | bilibili | ixigua |
2 | 1649. Create Sorted Array through Instructions | Java | - | Hard | Youtube | bilibili | ixigua |
3 | 535. Encode and Decode TinyURL | Java | - | Medium | Youtube | bilibili | ixigua |
4 | 622. Design Circular Queue | Java | - | Medium | Youtube | bilibili | ixigua |
- PriorityQueue
# | Title | Java | Kotlin | Difficulty | Youtube | bilibili | ixiagua |
---|---|---|---|---|---|---|---|
1 | 1675. Minimize Deviation in Array | Java | - | Hard | Youtube | bilibili | ixigua |
2 | 632. Smallest Range Covering Elements from K Lists | Java | - | Hard | Youtube | bilibili | ixigua |
3 | 1642. Furthest Building You Can Reach | Java | - | Hard | Youtube | bilibili | ixigua |
4 | 630. Course Schedule III | Java | - | Hard | Youtube | bilibili | ixigua |
5 | 1354. Construct Target Array With Multiple Sums | Java | - | Hard | Youtube | bilibili | ixigua |
6 | 1696. Jump Game VI | Java | - | Medium | Youtube | bilibili | ixigua |
7 | 871. Minimum Number of Refueling Stops | Java | - | Hard | Youtube | bilibili | ixigua |