# Complete Roadmap To Learn- DSA # Index

1. Which Programming Language Should I Choose ?
2. Data Structure & Algorithms -problem categories.
3. Easy Level Problems.
4. Medium Level Problems.
5. Hard Level Problems.

## 1.Which Programming Language Should I Choose ?

```                                   Beginner Problem
```Top 10
Top 10 Programming Languages To Learn !
```
• Python
• C
• C++
• C#
• JAVA
• JavaScript
• Golang
• Swift
• R
• PHP
```                              Which One's Is Best ?
Top 3 Language: C++ , Java ,Python

## 3. Easy Level Problems

`a. Math problems- At Easy Level`

1. Missing Number In Array.

2. Minimum Steps To Make A Product Equal To One.

3. Trailing Zero in Factorial

`b. Array problems- At Easy Level`
1. Rotate Array.

2. Majority Problems.

3. Plus One.

4. Array of Alternative +ve and -ve nos.

5. product array puzzle.

6. Large Factorial.

`c. Searching problems- At Easy Level`
1. Left most and Right most index.

2. Bitonic Point.

3. Collecting Wood.

`d. Sorting problems- At Easy Level`
1. Wave Array.

2. Sort an array of 0’s ,1’s,2’s.

3. Chocolate Distribution Problems.

`e. Matrix Problems- At Easy Level`
1. Sort A 2D vector diagonally

2. Search in sorted 2D and not 2D matrix

3. Boundary Traversal of matrix

`f. String problems- At Easy Level`
1. Reverse words in a given string.

2. Longest Common prefix.

3. Roman number to integer.

`g. Hashing problems- At Easy Level`
1. key pair.

2. Top k frequent elements in array.

3. Intersection of two arrays.

`h. Bit Masking problems-At Easy Level`
1. Reverse bits.

2. Number of set bits

3. sum of two integer.

4. Check whether k-th bit is set or not.

5. Longest Consecutive 1’s.

6. Non repeating number.

`i. Linked List problems-At Easy Level`
1. Merge two sorted Linked list.

3. Delete a node without head pointer.

5. Finding middle element in a Linked List.

6. Check if linked list is palindrome.

`g. Stack problems-At Easy Level`
1. Parenthesis checker.

2. Infix to prefix.

3. Restrictive Candy crush.