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.

## 100 Days of Leetcode challenge

- Top K Frequent Elements – Completed
- Product of Array Except Self – Completed
- Subsets – Completed
- Evaluate Reverse Polish Notation – Completed
- Sqrt(x) – Completed
- Rotate Array – Completed
- Reverse Bits – Completed
- Squares of a Sorted Array – Completed
- Find the Missing Number in an Array – Completed
- Count and Say – Completed
- Maximum Depth of Binary Tree – Completed
- Sort Characters By Frequency – Completed
- How to Reorganize String? – Completed
- Alphabet Board Path – Completed
- Minimum Remove to Make Valid Parentheses – Completed
- How Many Numbers Are Smaller Than the Current Number – Completed
- Find all Duplicates in an Array – Completed
- First Missing Positive – Completed
- Implement Queue using Stacks – Completed
- Implement Stack using Queues – Completed
- Implement LRU Cache – Completed
- Binary Tree Inorder Traversal – Completed
- Binary Tree Preorder Traversal – Iterative way – Completed
- Root To Leaf Sum Binary Tree – Completed
- Invert Binary Tree – Completed
- Average of Levels in Binary Tree – Completed
- Binary Tree Level Order Traversal II – Completed
- Happy Number – Completed
- Maximum sub array – Completed
- Find Largest Value in Each Tree Row – Completed
- Move Zeroes – Completed
- Reverse Substrings Between Each Pair of Parentheses – Completed
- Group Anagrams – Completed
- Path Sum II – Completed
- Binary Tree Paths – Completed
- Binary Tree Right Side View – Completed
- Binary Tree Level Order Traversal – Completed
- Binary Tree Zigzag Level Order Traversal – Completed
- Best Time to Buy and Sell Stock II – Completed
- Binary Search Tree: Insertion – Completed
- Min Stack : Push O(1), Pop O(1), GetMin O(1) – Completed
- How to Validate Binary Search Tree – Completed
- How to find the Height and Diameter of the Binary Tree – Completed
- Find Bottom Left Tree Value – Completed
- Convert Sorted Array to Binary Search Tree – Completed
- Sum Root to Leaf Numbers – Completed
- Perform String Shifts – Completed
- Sum of Left Leaves Iterative and Recursive Approach – Completed
- Reverse Vowels of a String – Completed
- Set Matrix Zeroes – Completed
- Minimum Depth of Binary Tree – Completed
- Valid String Parenthesis – Completed
- Binary Search Tree Iterator – Completed
- Find the Duplicate Number (Hare and Tortoise) – Completed
- Longest Substring Without Repeating Characters – Completed
- First Unique Number – Completed
- Diagonal Traverse II – Completed
- Cousins in Binary Tree – Completed
- Check If It Is a Straight Line – Completed
- Contains Duplicate II – Completed
- Find the Town Judge – Completed
- Increasing Triplet Subsequence
- Sort List
- Word Break
- Course Schedule II
- Merge Intervals
- Gas Station
- Basic Calculator II
- Find First and Last Position of Element in Sorted Array
- Search in Rotated Sorted Array
- Word Search
- Coin Change
- Jump Game
- Spiral Matrix
- Copy List with Random Pointer
- Maximum Product Sub array
- LRU Cache
- Longest Substring Without Repeating Characters
- Wiggle Sort II
- Pow(x, n)
- Longest Palindromic Substring
- Word Ladder
- Largest Number
- Validate Binary Search Tree
- 3Sum
- Surrounded Regions
- Decode Ways
- Fraction to Recurring Decimal
- Divide Two Integers
- String to Integer (atoi)
- Trapping Rain Water
- Serialize and Deserialize Binary Tree
- Longest Consecutive Sequence
- Longest Increasing Path in a Matrix
- Find Median from Data Stream
- Sliding Window Maximum
- Count of Smaller Numbers After Self
- Merge k Sorted Lists
- Largest Rectangle in Histogram
- 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#.

Saved as a favorite!, I really like your web site!

LikeLike

First time visiting your website, I enjoy your site!

LikeLike

tҺe website іѕ really good, I really like your web site!

LikeLike