Gstring-w / leetcode-algorithm

learning algorithm with python and C

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LeetCode

This repo is build to collect leetcode algorithms we write.

Completion Statistic:

  • Python: 362
  • JavaScript: 20
  • Java: 3
  • C(++): 41

Total completed: 392

Solutions

Title Solutions Difficulty
1. Two Sum Python, JavaScript, C(++) Easy
2. Add Two Numbers Python, JavaScript Medium
3. Longest Substring Without Repeating Characters Python, JavaScript, C(++) Medium
4. Median of Two Sorted Arrays JavaScript, C(++) Hard
5. Longest Palindromic Substring Python, JavaScript, C(++) Medium
6. ZigZag Conversion Python, C(++) Medium
7. Reverse Integer Python Easy
8. String to Integer (atoi) Python Medium
9. Palindrome Number Python Easy
10. Regular Expression Matching Python, JavaScript Hard
11. Container With Most Water Python Medium
12. Integer to Roman Python Medium
13. Roman to Integer Python, JavaScript Easy
14. Longest Common Prefix Python, C(++) Easy
15. 3Sum Python Medium
16. 3Sum Closest Python Medium
17. Letter Combinations of a Phone Number Python Medium
18. 4Sum Python Medium
19. Remove Nth Node From End of List Python Medium
20. Valid Parentheses Python, JavaScript Easy
21. Merge Two Sorted Lists Python Easy
22. Generate Parentheses Python Medium

| 23. Merge k Sorted Lists | Python | Hard | | 24. Swap Nodes in Pairs | Python | Medium | | 25. Reverse Nodes in k-Group | Python | Hard | | 26. Remove Duplicates from Sorted Array | Python, JavaScript | Easy |

| 27. Remove Element | Python | Easy | | 28. Implement strStr() | Python | Easy | | 29. Divide Two Integers | Python | Medium | | 30. Substring with Concatenation of All Words | Python | Hard | | 31. Next Permutation | Python | Medium | | 32. Longest Valid Parentheses | Python | Hard | | 33. Search in Rotated Sorted Array | Python, JavaScript, C(++) | Medium | | 34. Find First and Last Position of Element in Sorted Array | Python, JavaScript | Medium | | 35. Search Insert Position | Python | Easy | | 36. Valid Sudoku | Python | Medium | | 37. Sudoku Solver | Python, Java | Hard | | 38. Count and Say | Python | Easy | | 39. Combination Sum | Python | Medium | | 40. Combination Sum II | Python | Medium | | 41. First Missing Positive | Python | Hard | | 42. Trapping Rain Water | Python | Hard | | 43. Multiply Strings | Python, C(++) | Medium | | 44. Wildcard Matching | Python | Hard | | 45. Jump Game II | Python | Hard | | 46. Permutations | Python | Medium | | 47. Permutations II | Python | Medium | | 48. Rotate Image | Python | Medium | | 49. Group Anagrams | Python, Java | Medium | | 50. Pow(x, n) | Python | Medium | | 51. N-Queens | Python | Hard | | 52. N-Queens II | Python | Hard | | 53. Maximum Subarray | Python, C(++) | Easy | | 54. Spiral Matrix | Python | Medium | | 55. Jump Game | Python | Medium | | 56. Merge Intervals | Python, C(++) | Medium | | 57. Insert Interval | Python, C(++) | Hard | | 58. Length of Last Word | Python | Easy | | 59. Spiral Matrix II | Python | Medium | | 60. Permutation Sequence | Python | Medium | | 61. Rotate List | Python | Medium | | 62. Unique Paths | Python | Medium | | 63. Unique Paths II | Python | Medium | | 64. Minimum Path Sum | Python | Medium | | 66. Plus One | Python | Easy | | 67. Add Binary | Python | Easy | | 68. Text Justification | Python | Hard | | 69. Sqrt(x) | Python | Easy | | 70. Climbing Stairs | Python | Easy | | 71. Simplify Path | Python | Medium | | 72. Edit Distance | Python | Hard | | 73. Set Matrix Zeroes | Python | Medium | | 74. Search a 2D Matrix | Python, JavaScript | Medium | | 75. Sort Colors | Python | Medium | | 76. Minimum Window Substring | Python, C(++) | Hard | | 77. Combinations | Python | Medium | | 78. Subsets | Python | Medium | | 79. Word Search | Python | Medium | | 80. Remove Duplicates from Sorted Array II | Python | Medium | | 81. Search in Rotated Sorted Array II | Python | Medium | | 82. Remove Duplicates from Sorted List II | Python | Medium | | 83. Remove Duplicates from Sorted List | Python | Easy | | 84. Largest Rectangle in Histogram | Python | Hard | | 86. Partition List | Python | Medium | | 88. Merge Sorted Array | Python, C(++) | Easy | | 89. Gray Code | Python | Medium | | 90. Subsets II | Python | Medium | | 91. Decode Ways | Python | Medium | | 92. Reverse Linked List II | Python | Medium | | 93. Restore IP Addresses | Python | Medium | | 94. Binary Tree Inorder Traversal | Python | Medium | | 95. Unique Binary Search Trees II | Python | Medium | | 96. Unique Binary Search Trees | Python | Medium | | 98. Validate Binary Search Tree | Python | Medium | | 100. Same Tree | Python | Easy | | 101. Symmetric Tree | Python | Easy | | 102. Binary Tree Level Order Traversal | Python, C(++) | Medium | | 103. Binary Tree Zigzag Level Order Traversal | Python | Medium | | 104. Maximum Depth of Binary Tree | Python | Easy | | 105. Construct Binary Tree from Preorder and Inorder Traversal | Python | Medium | | 106. Construct Binary Tree from Inorder and Postorder Traversal | Python | Medium | | 107. Binary Tree Level Order Traversal II | Python | Easy | | 108. Convert Sorted Array to Binary Search Tree | Python | Easy | | 109. Convert Sorted List to Binary Search Tree | Python | Medium | | 110. Balanced Binary Tree | Python | Easy | | 111. Minimum Depth of Binary Tree | Python | Easy | | 112. Path Sum | Python | Easy | | 113. Path Sum II | Python | Medium | | 114. Flatten Binary Tree to Linked List | Python | Medium | | 115. Distinct Subsequences | Python | Hard | | 116. Populating Next Right Pointers in Each Node | Python | Medium | | 120. Triangle | Python | Medium | | 121. Best Time to Buy and Sell Stock | Python | Easy | | 122. Best Time to Buy and Sell Stock II | Python | Easy | | 123. Best Time to Buy and Sell Stock III | Python | Hard | | 124. Binary Tree Maximum Path Sum | Python | Hard | | 125. Valid Palindrome | Python | Easy | | 128. Longest Consecutive Sequence | Python | Hard | | 129. Sum Root to Leaf Numbers | Python | Medium | | 130. Surrounded Regions | Python | Medium | | 131. Palindrome Partitioning | Python | Medium | | 132. Palindrome Partitioning II | Python | Hard | | 133. Clone Graph | Python | Medium | | 134. Gas Station | Python | Medium | | 136. Single Number | Python | Easy | | 137. Single Number II | Python | Medium | | 139. Word Break | Python, C(++) | Medium | | 140. Word Break II | Python | Hard | | 141. Linked List Cycle | Python | Easy | | 142. Linked List Cycle II | Python | Medium | | 145. Binary Tree Postorder Traversal | Python | Hard | | 146. LRU Cache | Python | Medium | | 147. Insertion Sort List | Python | Medium | | 148. Sort List | Python | Medium | | 149. Max Points on a Line | Python | Hard | | 150. Evaluate Reverse Polish Notation | Python | Medium | | 151. Reverse Words in a String | C(++) | Medium | | 153. Find Minimum in Rotated Sorted Array | Python | Medium | | 154. Find Minimum in Rotated Sorted Array II | Python | Hard | | 155. Min Stack | Python | Easy | | 162. Find Peak Element | Python | Medium | | 165. Compare Version Numbers | Python | Medium | | 166. Fraction to Recurring Decimal | Python | Medium | | 167. Two Sum II - Input array is sorted | Python | Easy | | 169. Majority Element | Python, JavaScript | Easy | | 173. Binary Search Tree Iterator | Python, C(++) | Medium | | 174. Dungeon Game | Python | Hard | | 179. Largest Number | Python | Medium | | 187. Repeated DNA Sequences | Python | Medium | | 189. Rotate Array | Python | Easy | | 190. Reverse Bits | C(++) | Easy | | 191. Number of 1 Bits | Python | Easy | | 198. House Robber | Python | Easy | | 200. Number of Islands | Python | Medium | | 201. Bitwise AND of Numbers Range | Python | Medium | | 202. Happy Number | Python | Easy | | 204. Count Primes | Python | Easy | | 205. Isomorphic Strings | Python, JavaScript | Easy | | 206. Reverse Linked List | Python | Easy | | 207. Course Schedule | Python | Medium | | 208. Implement Trie (Prefix Tree) | Python | Medium | | 209. Minimum Size Subarray Sum | Python | Medium | | 210. Course Schedule II | Python | Medium | | 211. Add and Search Word - Data structure design | Python | Medium | | 212. Word Search II | Python | Hard | | 213. House Robber II | Python | Medium | | 214. Shortest Palindrome | Python | Hard | | 215. Kth Largest Element in an Array | Python | Medium | | 217. Contains Duplicate | Python | Easy | | 219. Contains Duplicate II | Python | Easy | | 220. Contains Duplicate III | Python | Medium | | 221. Maximal Square | Python | Medium | | 223. Rectangle Area | Python | Medium | | 224. Basic Calculator | C(++) | Hard | | 225. Implement Stack using Queues | Python | Easy | | 226. Invert Binary Tree | Python | Easy | | 227. Basic Calculator II | Python | Medium | | 228. Summary Ranges | Python | Medium | | 230. Kth Smallest Element in a BST | Python | Medium | | 231. Power of Two | Python | Easy | | 232. Implement Queue using Stacks | Python, Java | Easy | | 235. Lowest Common Ancestor of a Binary Search Tree | Python | Easy | | 236. Lowest Common Ancestor of a Binary Tree | Python | Medium | | 237. Delete Node in a Linked List | Python | Easy | | 238. Product of Array Except Self | Python | Medium | | 239. Sliding Window Maximum | Python | Hard | | 240. Search a 2D Matrix II | Python | Medium | | 241. Different Ways to Add Parentheses | Python | Medium | | 257. Binary Tree Paths | Python | Easy | | 260. Single Number III | Python | Medium | | 263. Ugly Number | Python | Easy | | 264. Ugly Number II | Python | Medium | | 268. Missing Number | Python | Easy | | 273. Integer to English Words | Python | Hard | | 274. H-Index | Python | Medium | | 275. H-Index II | Python | Medium | | 278. First Bad Version | Python, C(++) | Easy | | 279. Perfect Squares | Python | Medium | | 283. Move Zeroes | Python | Easy | | 287. Find the Duplicate Number | Python | Medium | | 289. Game of Life | Python | Medium | | 290. Word Pattern | Python | Easy | | 299. Bulls and Cows | Python, JavaScript | Easy | | 300. Longest Increasing Subsequence | Python | Medium | | 303. Range Sum Query - Immutable | Python | Easy | | 304. Range Sum Query 2D - Immutable | Python | Medium | | 305. Number of Islands II | Python | Hard | | 307. Range Sum Query - Mutable | Python | Medium | | 312. Burst Balloons | C(++) | Hard | | 319. Bulb Switcher | Python | Medium | | 322. Coin Change | Python | Medium | | 326. Power of Three | C(++) | Easy | | 329. Longest Increasing Path in a Matrix | Python | Hard | | 331. Verify Preorder Serialization of a Binary Tree | Python | Medium | | 332. Reconstruct Itinerary | Python | Medium | | 337. House Robber III | Python | Medium | | 338. Counting Bits | Python | Medium | | 341. Flatten Nested List Iterator | Python | Medium | | 343. Integer Break | Python | Medium | | 347. Top K Frequent Elements | Python | Medium | | 349. Intersection of Two Arrays | Python | Easy | | 350. Intersection of Two Arrays II | Python | Easy | | 354. Russian Doll Envelopes | Python | Hard | | 355. Design Twitter | Python | Medium | | 371. Sum of Two Integers | Python | Easy | | 376. Wiggle Subsequence | Python | Medium | | 378. Kth Smallest Element in a Sorted Matrix | Python | Medium | | 387. First Unique Character in a String | Python | Easy | | 392. Is Subsequence | Python | Easy | | 394. Decode String | Python | Medium | | 402. Remove K Digits | Python | Medium | | 404. Sum of Left Leaves | Python, C(++) | Easy | | 405. Convert a Number to Hexadecimal | Python | Easy | | 406. Queue Reconstruction by Height | Python | Medium | | 409. Longest Palindrome | Python | Easy | | 416. Partition Equal Subset Sum | Python | Medium | | 417. Pacific Atlantic Water Flow | Python | Medium | | 421. Maximum XOR of Two Numbers in an Array | Python | Medium | | 437. Path Sum III | Python | Easy | | 438. Find All Anagrams in a String | C(++) | Medium | | 441. Arranging Coins | Python | Easy | | 442. Find All Duplicates in an Array | Python | Medium | | 443. String Compression | Python | Easy | | 445. Add Two Numbers II | Python | Medium | | 452. Minimum Number of Arrows to Burst Balloons | Python | Medium | | 454. 4Sum II | Python, C(++) | Medium | | 455. Assign Cookies | Python | Easy | | 458. Poor Pigs | Python | Hard | | 459. Repeated Substring Pattern | Python | Easy | | 461. Hamming Distance | Python | Easy | | 462. Minimum Moves to Equal Array Elements II | Python | Medium | | 463. Island Perimeter | Python | Easy | | 464. Can I Win | Python | Medium | | 465. Optimal Account Balancing | Python | Hard | | 473. Matchsticks to Square | Python | Medium | | 475. Heaters | Python | Easy | | 476. Number Complement | Python | Easy | | 477. Total Hamming Distance | Python | Medium | | 481. Magical String | Python | Medium | | 486. Predict the Winner | Python | Medium | | 496. Next Greater Element I | Python | Easy | | 504. Base 7 | Python | Easy | | 507. Perfect Number | Python | Easy | | 509. Fibonacci Number | JavaScript | Easy | | 513. Find Bottom Left Tree Value | Python | Medium | | 518. Coin Change 2 | Python | Medium | | 525. Contiguous Array | Python | Medium | | 526. Beautiful Arrangement | Python | Medium | | 530. Minimum Absolute Difference in BST | C(++) | Easy | | 542. 01 Matrix | Python | Medium | | 543. Diameter of Binary Tree | Python | Easy | | 547. Friend Circles | Python, C(++) | Medium | | 551. Student Attendance Record I | Python | Easy | | 554. Brick Wall | Python | Medium | | 559. Maximum Depth of N-ary Tree | Python | Easy | | 560. Subarray Sum Equals K | Python | Medium | | 561. Array Partition I | Python | Easy | | 566. Reshape the Matrix | Python | Easy | | 576. Out of Boundary Paths | Python | Medium | | 589. N-ary Tree Preorder Traversal | Python | Easy | | 590. N-ary Tree Postorder Traversal | Python | Easy | | 599. Minimum Index Sum of Two Lists | Python | Easy | | 606. Construct String from Binary Tree | Python, C(++) | Easy | | 617. Merge Two Binary Trees | Python | Easy | | 621. Task Scheduler | C(++) | Medium | | 628. Maximum Product of Three Numbers | Python | Easy | | 633. Sum of Square Numbers | Python | Easy | | 637. Average of Levels in Binary Tree | C(++) | Easy | | 648. Replace Words | Python | Medium | | 650. 2 Keys Keyboard | Python | Medium | | 652. Find Duplicate Subtrees | Python, C(++) | Medium | | 654. Maximum Binary Tree | Python | Medium | | 655. Print Binary Tree | Python | Medium | | 657. Robot Return to Origin | Python | Easy | | 665. Non-decreasing Array | JavaScript | Easy | | 669. Trim a Binary Search Tree | Python | Easy | | 671. Second Minimum Node In a Binary Tree | Python | Easy | | 673. Number of Longest Increasing Subsequence | Python | Medium | | 674. Longest Continuous Increasing Subsequence | Python | Easy | | 675. Cut Off Trees for Golf Event | Python | Hard | | 677. Map Sum Pairs | Python | Medium | | 680. Valid Palindrome II | Python | Easy | | 682. Baseball Game | Python | Easy | | 687. Longest Univalue Path | Python | Easy | | 690. Employee Importance | Python | Easy | | 692. Top K Frequent Words | Python | Medium | | 697. Degree of an Array | Python | Easy | | 701. Insert into a Binary Search Tree | Python | Medium | | 703. Kth Largest Element in a Stream | Python | Easy | | 704. Binary Search | Python | Easy | | 705. Design HashSet | Python | Easy | | 706. Design HashMap | Python | Easy | | 717. 1-bit and 2-bit Characters | Python | Easy | | 720. Longest Word in Dictionary | Python | Easy | | 724. Find Pivot Index | Python | Easy | | 728. Self Dividing Numbers | Python | Easy | | 733. Flood Fill | Python | Easy | | 743. Network Delay Time | Python | Medium | | 744. Find Smallest Letter Greater Than Target | Python | Easy | | 746. Min Cost Climbing Stairs | Python | Easy | | 748. Shortest Completing Word | Python | Easy | | 756. Pyramid Transition Matrix | Python | Medium | | 762. Prime Number of Set Bits in Binary Representation | Python | Easy | | 771. Jewels and Stones | Python | Easy | | 778. Swim in Rising Water | C(++) | Hard | | 784. Letter Case Permutation | Python | Easy | | 799. Champagne Tower | Python | Medium | | 801. Minimum Swaps To Make Sequences Increasing | Python | Medium | | 802. Find Eventual Safe States | Python | Medium | | 811. Subdomain Visit Count | Python | Easy | | 823. Binary Trees With Factors | Python | Medium | | 829. Consecutive Numbers Sum | Python | Hard | | 836. Rectangle Overlap | Python | Easy | | 841. Keys and Rooms | Python | Medium | | 857. Minimum Cost to Hire K Workers | Python | Hard | | 860. Lemonade Change | Python | Easy | | 871. Minimum Number of Refueling Stops | Python, C(++) | Hard | | 872. Leaf-Similar Trees | Python | Easy | | 883. Projection Area of 3D Shapes | Python | Easy | | 891. Sum of Subsequence Widths | Python | Hard | | 897. Increasing Order Search Tree | Python, JavaScript | Easy | | 905. Sort Array By Parity | Python | Easy | | 912. Sort an Array | JavaScript | Medium | | 930. Binary Subarrays With Sum | Python | Medium | | 931. Minimum Falling Path Sum | Python | Medium | | 958. Check Completeness of a Binary Tree | Python | Medium | | 965. Univalued Binary Tree | Python | Easy | | 987. Vertical Order Traversal of a Binary Tree | JavaScript | Medium | | 988. Smallest String Starting From Leaf | Python | Medium | | 1029. Two City Scheduling | Python | Easy | | 1046. Last Stone Weight | Python | Easy | | 1092. Shortest Common Supersequence | Python | Hard | | 1109. Corporate Flight Bookings | Python | Medium | | 1114. Print in Order | C(++) | Easy | | 1115. Print FooBar Alternately | C(++) | Medium | | 1129. Shortest Path with Alternating Colors | Python | Medium | | 1145. Binary Tree Coloring Game | Python | Medium | | 1160. Find Words That Can Be Formed by Characters | Python | Easy | | 1175. Prime Arrangements | Python | Easy | | 1202. Smallest String With Swaps | Python | Medium | | 1278. Palindrome Partitioning III | Python | Hard | | 1287. Element Appearing More Than 25% In Sorted Array | Python | Easy | | 1288. Remove Covered Intervals | Python | Medium | | 1289. Minimum Falling Path Sum II | Python | Hard | | 1290. Convert Binary Number in a Linked List to Integer | Python | Easy | | 1291. Sequential Digits | Python | Medium | | 1292. Maximum Side Length of a Square with Sum Less than or Equal to Threshold | Python | Medium | | 1293. Shortest Path in a Grid with Obstacles Elimination | Python | Hard | | 1295. Find Numbers with Even Number of Digits | C(++) | Easy | | 1296. Divide Array in Sets of K Consecutive Numbers | Python | Medium | | 1297. Maximum Number of Occurrences of a Substring | Python | Medium | | 1299. Replace Elements with Greatest Element on Right Side | Python | Easy | | 1300. Sum of Mutated Array Closest to Target | Python | Medium | | 1301. Number of Paths with Max Score | Python | Hard | | 1304. Find N Unique Integers Sum up to Zero | Python | Easy | | 1305. All Elements in Two Binary Search Trees | Python | Medium | | 1306. Jump Game III | Python | Medium | | 1312. Minimum Insertion Steps to Make a String Palindrome | Python, C(++) | Hard | | 1317. Convert Integer to the Sum of Two No-Zero Integers | Python | Easy | | 1319. Number of Operations to Make Network Connected | Python | Medium | | 1323. Maximum 69 Number | Python | Easy | | 1324. Print Words Vertically | Python | Medium | | 1325. Delete Leaves With a Given Value | Python | Medium | | 1326. Minimum Number of Taps to Open to Water a Garden | Python | Hard | | 1328. Break a Palindrome | C(++) | Medium | | 1329. Sort the Matrix Diagonally | Python | Medium | | 1330. Reverse Subarray To Maximize Array Value | Python | Hard | | 1331. Rank Transform of an Array | C(++) | Easy | | 1332. Remove Palindromic Subsequences | Python | Easy | | 1334. Find the City With the Smallest Number of Neighbors at a Threshold Distance | C(++) | Medium | | 1337. The K Weakest Rows in a Matrix | Python | Easy | | 1338. Reduce Array Size to The Half | Python | Medium | | 1339. Maximum Product of Splitted Binary Tree | Python | Medium | | 1356. Sort Integers by The Number of 1 Bits | Python | Easy |

Contribution

Use Github issues for requests.

We actively welcome pull requests, learn how to contribute.

About

learning algorithm with python and C


Languages

Language:JavaScript 74.3%Language:Python 23.1%Language:C++ 2.1%Language:Java 0.3%Language:C 0.2%