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
- 4Sum II
- Kth Largest Element in an Array
- Kth Smallest Element in a Sorted Matrix
- Binary Tree Level Order Traversal
- Odd Even Linked List
- Shuffle an Array
- Unique Paths
- Flatten Nested List Iterator
- Game of Life
- Container With Most Water
- Valid Sudoku
- Construct Binary Tree from Preorder and Inorder Traversal
- Insert Delete Get Random O(1)
- Binary Tree Zigzag Level Order Traversal
- Letter Combinations of a Phone Number
- Number of Islands
- Palindrome Partitioning
- Sort Colors
- Perfect Squares
- Implement Trie (Prefix Tree)
- Find Peak Element
- Search a 2D Matrix II
- Lowest Common Ancestor of a Binary Tree
- Set Matrix Zeroes
- Longest Increasing Subsequence
- Populating Next Right Pointers in Each Node
- Course Schedule
- Longest Substring with At Least K Repeating Characters
- 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#.

Pingback: Product of Array Except Self – Passion of Programming

Pingback: Evaluate Reverse Polish Notation – Passion of Programming

Pingback: Sqrt(x) – Passion of Programming

Pingback: Rotate Array – Passion of Programming