# 100 Days Leetcode Challenge

Hi Geeks! Welcome to 100 Days Leetcode challenge. In these days, we going to solve Leetcode’s top 100 data structures and algorithm problems.

## Purpose of 100 Days Leetcode Challenge

• The main purpose of this challenge is, as a Software Developer we should have a strong command over the algorithms and data structures.
• Solving these problems daily, might helps you to build your logical skills sharply.
• Because of these skills, at the time of developing applications, you can able to see the differences in the quality of your code from other peers.
• Logical skills plays a key role in the performance of an application.

## How we going to do this challenge

• For every day, we going to solve only one problem.
• I want everyone to spend at least 30 minutes daily for this challenge.
• Therefore, at the end of 100th we will complete 100 Leetcode problems.

In this article, I listed below 100 Leetcode problem questions.

#### What I’m going to do here?

Everyday, I’m gonna to solve the problem and cover it with detailed explanations and diagrams. My intention here is to solve problems and explain problems with detailed illustrations. But I’m very much interested in explaining the data structures and algorithm problems to newbies.

So I made this article, to help other programmers. Whenever I solve problem, I update here the problem with solutions and explanations.

If you like to join with me, please follow me via email. So that, whenever I solve problems and update here, you will get an email notification message.

Processing…
Thank you!

## 100 Days of Leetcode challenge

1. Top K Frequent Elements   – Completed
2. Product of Array Except Self    – Completed
3. Subsets – Completed
4. Evaluate Reverse Polish Notation  – Completed
5. Sqrt(x) – Completed
6. Rotate Array  – Completed
7. Reverse Bits – Completed
8. Squares of a Sorted Array – Completed
9. Find the Missing Number in an Array – Completed
10. Count and Say – Completed
11. Maximum Depth of Binary Tree – Completed
12. Sort Characters By Frequency  – Completed
13. How to Reorganize String? – Completed
14. Alphabet Board Path – Completed
15. Minimum Remove to Make Valid Parentheses – Completed
16. How Many Numbers Are Smaller Than the Current Number – Completed
17. Find all Duplicates in an Array – Completed
18. First Missing Positive – Completed
19. Implement Queue using Stacks – Completed
20. Implement Stack using Queues – Completed
21. Implement LRU Cache – Completed
22. Binary Tree Inorder Traversal – Completed
23. Binary Tree Preorder Traversal – Iterative way – Completed
24. Root To Leaf Sum Binary Tree – Completed
25. Invert Binary Tree – Completed
26. Average of Levels in Binary Tree – Completed
27. Binary Tree Level Order Traversal II – Completed
28. Happy Number – Completed
29. Maximum sub array – Completed
30. Find Largest Value in Each Tree Row – Completed
31. Move Zeroes – Completed
32. Reverse Substrings Between Each Pair of Parentheses – Completed
33. Group Anagrams – Completed
34. Path Sum II – Completed
35. Binary Tree Paths – Completed
36. Binary Tree Right Side View – Completed
37. Binary Tree Level Order Traversal – Completed
38. Binary Tree Zigzag Level Order Traversal – Completed
39. Best Time to Buy and Sell Stock II – Completed
40. Binary Search Tree: Insertion – Completed
41. Min Stack : Push O(1), Pop O(1), GetMin O(1) – Completed
42. How to Validate Binary Search Tree – Completed
43. How to find the Height and Diameter of the Binary Tree – Completed
44. Find Bottom Left Tree Value – Completed
45. Convert Sorted Array to Binary Search Tree – Completed
46. Sum Root to Leaf Numbers – Completed
47. Perform String Shifts – Completed
48. Sum of Left Leaves Iterative and Recursive Approach – Completed
49. Reverse Vowels of a String – Completed
50. Set Matrix Zeroes – Completed
51. Minimum Depth of Binary Tree – Completed
52. Valid String Parenthesis – Completed
53. Binary Search Tree Iterator – Completed
54. Find the Duplicate Number (Hare and Tortoise) – Completed
55. Longest Substring Without Repeating Characters – Completed
56. First Unique Number – Completed
57. Diagonal Traverse II – Completed
58. Cousins in Binary Tree – Completed
59. Check If It Is a Straight Line – Completed
60. Contains Duplicate II – Completed
61. Find the Town Judge – Completed
62. Maximal Square – Completed
63. Minimum Edit Distance – Completed
64. Longest Increasing Subsequence – Completed
65. Insert Delete GetRandom O(1) – Completed
66. Count Square Submatrices with All Ones – Completed
67. Insert Interval – Completed
68. Climbing Stairs – Completed
69. Merge k Sorted Lists – Completed
70. Path In Zigzag Labelled Binary Tree – Completed
71. 4Sum II – Completed
72. Find First and Last Position of Element in Sorted Array – Completed
73. Coin Change – Completed
74. Lexicographical Numbers : Beauty of DFS – Completed
75. Unique Binary Search Trees : Catalan Numbers – Completed
76. Word Break – Completed
77. Rotate Function – Completed
78. Best Time to Buy and Sell Stock – Easy Problem – Completed
79. Largest Rectangle in Histogram – Completed
80. Container With Most Water – Completed
81. Minimum Jumps – Completed
82. Count Subsequences – Completed
83. Max Sum K – Partition – Completed
84. Palindromic Queries – Completed
85. 3Sum
86. Surrounded Regions
87. Decode Ways
88. Fraction to Recurring Decimal
89. Divide Two Integers
90. String to Integer (atoi)
91. Trapping Rain Water
92. Serialize and Deserialize Binary Tree
93. Longest Consecutive Sequence
94. Longest Increasing Path in a Matrix
95. Find Median from Data Stream
96. Sliding Window Maximum
97. Count of Smaller Numbers After Self
98. Merge k Sorted Lists
99. Largest Rectangle in Histogram
100. Minimum Window Sub-string

### What are the languages I’m going to use?

Since programming languages are independent of data structures and algorithms. So I’m going to play with data structures and algorithms using Java, JavaScript and C#.