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 week, we going to solve ten questions.
- Therefore, at the end of tenth week we will finish our 100 Days Leetcode challenge.
- You can see below, 10/10 sets of Leetcode questions for every week.

In this article, I listed below 100 Leetcode problem questions, with respective week which we going to solve.

#### 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. 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.

## Week 1

- Top K Frequent Elements
- Product of Array Except Self
- Subsets
- Evaluate Reverse Polish Notation
- Generate Parentheses
- Min Stack
- Reverse Bits
- Longest Common Prefix
- Implement strStr()
- Permutations

## Week 2

- House Robber
- Count and Say
- Maximum Depth of Binary Tree
- Valid Anagram
- Convert Sorted Array to Binary Search Tree
- Roman to Integer
- Majority Element
- Excel Sheet Column Number
- Pascal’s Triangle
- Happy Number

## Week 3

- Best Time to Buy and Sell Stock
- Best Time to Buy and Sell Stock II
- Climbing Stairs
- Maximum Sub-array
- Number of 1 Bits
- Plus One
- Factorial Trailing Zeroes
- Intersection of Two Linked Lists
- Count Primes
- Kth Smallest Element in a BST

## Week 4

- Rotate Image
- 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

## Week 5

- 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

## WEEK 6

- 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

## Week 7

- 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

## Week 8

- 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

## Week 9

- 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

## Week 10

- 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
- Binary Tree Maximum Path Sum
- Word Search II

### 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#.

#### Note:

Within ten weeks we can complete this challenge. It will take 70 days, remaining 30 days we going to focus on the patterns behind these problems. Finding patterns behind these algorithms and data structures problems is a good thing, which gives confidence to solve more problems like this.

## One thought on “100 Days Leetcode Challenge”