Giter VIP home page Giter VIP logo

100daysofdsachallenge's Introduction

Resources

Data-Structures-RoadMap

Original resource By (https://github.com/ZeeshanAdilButt/Data-Structures-RoadMap/blob/main/README.md)

Data structures roadmap to solve 150+ leetcode problems in 5 weeks with a good understanding of basics and techniques

Some considerations while starting with problem-solving till 100+ Leetcode problems are solved:

  • Start with the most-easiest problems.
  • DO NOT try to solve each problem yourself, instead try to learn and understand how different problems are being solved
  • Do not try to solve a problem for more than 1 hour initially to get fast and to achieve more in less time, for any problem taking more than 1 hour, put it in a backlog and solve it later
  • The average time to solve a problem should be 30-45 minutes
  • Do not try to solve a lot of problems from one topic, instead try to solve 5-10 problems per topic
  • Do not try to jump into problem-solving directly without the necessary pre-requisites, For example
  • If you are trying to solve a problem that requires HashSet/HashMap then make sure you have studied HashMap before solving the problem If you are trying to solve a problem that uses recursion, first make sure you learn recursion properly If you are trying to solve a problem that uses graphs/trees, first make sure you learn graphs/tree properly If you are trying to solve a problem that uses dynamic programming, first make sure you learn dynamic programming properly.

Week 1- Data Structures Overview:

  • Basic Understanding of Data structures in your language (C++ STL, C# Collections, Python Standard Library)

  • If you like C++ and more details > My code school Data Structures

https://www.youtube.com/playlist?list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P (C++)

  • If you like Python > code basics - Data Structures

https://www.youtube.com/playlist?list=PLeo1K3hjS3uu_n_a__MI_KktGTLYopZ12

  • Introduction to Hash Tables and Dictionaries by CS Dojo:

https://www.youtube.com/watch?v=sfWyugl4JWA

Week 2 - 25 EASY problems ( 3-4 hours a day | 4 problems a day):

  • Easy String Algorithms
  1. String as character arrays:

video: https://www.youtube.com/watch?v=TkTgo_7ab0M&pp=ygUQcHJpbnQgY2hhcmFjdGVycw%3D%3D

  1. Count characters in string

video: https://www.youtube.com/watch?v=kWr0TIjO6nU

  1. Arrays & Hashing:_
  • Contains Duplicate

video: https://www.youtube.com/watch?v=3OamzN90kPg problem: https://leetcode.com/problems/contains-duplicate/

  • Valid Anagram:

video: https://www.youtube.com/watch?v=9UtInBqnCgA problem: https://leetcode.com/problems/valid-anagram

  • Two Sum:

video: https://www.youtube.com/watch?v=KLlXCFG5TnA problem: (https://leetcode.com/problems/two-sum/)

  • Length of Last word:

video: https://www.youtube.com/watch?v=KT9rltZTybQ&list=PLot-Xpze53lfQmTEztbgdp8ALEoydvnRQ&index=27 problem:

  • Search Insert Position

video: https://www.youtube.com/watch?v=K-RYzDZkzCI&list=PLot-Xpze53lfQmTEztbgdp8ALEoydvnRQ&index=23 problem:

  1. Two Pointers:_

V- alid Palindrome

video: https://leetcode.com/problems/valid-palindrome/ problem: https://leetcode.com/problems/valid-palindrome/

  • Best time to buy and Sell Stock:

video: https://www.youtube.com/watch?v=1pkOgXD63yU&list=PLot-Xpze53lfQmTEztbgdp8ALEoydvnRQ&index=7&pp=iAQB problem: https://leetcode.com/problems/best-time-to-buy-and-sell-stock/

S- tack & Queue Problems:_

  1. alid Parenthesis

video: https://www.youtube.com/watch?v=WTzjTskDFMg problem: https://leetcode.com/problems/valid-parentheses/

Implement Stack using Queue:

video: https://www.youtube.com/watch?v=rW4vm0-DLYc&list=PLot-Xpze53lfxD6l5pAGvCD4nPvWKU8Qo&index=10 problem: https://leetcode.com/problems/implement-stack-using-queues/

Implement Queue using Stack:

video: https://www.youtube.com/watch?v=3Et9MrMc02A&pp=ygUabmVldGNvZGUgcXVldWUgdXNpbmcgc3RhY2s%3D problem: https://leetcode.com/problems/implement-queue-using-stacks/

Sqrt(x)

problem: https://leetcode.com/problems/sqrtx/ video:

704 Binary Search

problem: https://leetcode.com/problems/binary-search/ video:

Count Negative Numbers in a Sorted Matrix

problem: https://leetcode.com/problems/count-negative-numbers-in-a-sorted-matrix/ video:

Peak Index in a Mountain Array

problem: https://leetcode.com/problems/peak-index-in-a-mountain-array/ video: Find Peak element:

video: https://www.youtube.com/watch?v=CFgUQUL7j_c problem: Maximum Sub Array:

video: https://www.youtube.com/watch?v=5WZl3MMT0Eg&list=PLot-Xpze53lfQmTEztbgdp8ALEoydvnRQ&index=4 problem: https://leetcode.com/problems/maximum-subarray/ Recursion Course ( don't watch the trees or graphs section): https://www.youtube.com/watch?v=IJDJ0kBx2LM

Linked List Course:_

course with problems (find all the similar problems on leetcode): video: https://www.youtube.com/watch?v=Hj_rA0dhr2I&pp=ygUXbGlua2VkbGlzdCBmcmVlY29kZWNhbXA%3D

Linked list problems:_

Reverse Linked List

https://leetcode.com/problems/reverse-linked-list/ https://www.youtube.com/watch?v=G0_I-ZF0S38

Merge 2 sorted Lits

https://leetcode.com/problems/merge-two-sorted-lists/ https://www.youtube.com/watch?v=XIdigk956u0

Linked List Cycle

https://leetcode.com/problems/linked-list-cycle/ https://www.youtube.com/watch?v=gBTe7lFR3vc

Reverse Linked List - Iterative AND Recursive

video: https://www.youtube.com/watch?v=G0_I-ZF0S38&list=PLot-Xpze53lfQmTEztbgdp8ALEoydvnRQ&index=10&pp=iAQB code: https://leetcode.com/problems/reverse-linked-list/

Palindrome Linked List

video: https://www.youtube.com/watch?v=yOzXms1J6Nk&list=PLot-Xpze53lfQmTEztbgdp8ALEoydvnRQ&index=13 problem:

Remove Linked List element:

video: https://www.youtube.com/watch?v=JI71sxtHTng&list=PLot-Xpze53lfQmTEztbgdp8ALEoydvnRQ&index=21&pp=iAQB problem:

Week 3

Hash table 1- Happy Number https://leetcode.com/problems/happy-number/

2- Isomorphic Strings https://leetcode.com/problems/isomorphic-strings/

3- Missing Number https://leetcode.com/problems/missing-number/

4- Word Pattern https://leetcode.com/problems/word-pattern/

5- Next Greater Element I https://leetcode.com/problems/next-greater-element-i/

Trees Recursion Course (watch the trees section): https://www.youtube.com/watch?v=IJDJ0kBx2LM

Trees Full Course: https://www.youtube.com/watch?v=fAAZixBzIAI

Graphs Recursion Course ( watch the graphs section): https://www.youtube.com/watch?v=IJDJ0kBx2LM

Graphs Full Course:

https://www.youtube.com/watch?v=tWVWeAqZ0WU

1-Find the Town Judge

video: https://www.youtube.com/watch?v=ZUP_tIs4VaE

problem https://leetcode.com/problems/find-the-town-judge/

2- Find Center of Star Graph

video: https://www.youtube.com/watch?v=KEKcW6eLyEY

problem: https://leetcode.com/problems/find-center-of-star-graph/

3-Find if Path Exists in Graph

video: https://www.youtube.com/watch?v=QC4bDHEnmLM&pp=ygUfMTc5MS4gRmluZCBDZW50ZXIgb2YgU3RhciBHcmFwaA%3D%3D

problem: https://leetcode.com/problems/find-if-path-exists-in-graph/

DFS 1- Binary Tree Inorder Traversal

video: https://youtu.be/g_S5WuasWUE problem: https://leetcode.com/problems/binary-tree-inorder-traversal 2- Binary Tree Preorder Traversal

video: https://youtu.be/afTpieEZXck problem: https://leetcode.com/problems/binary-tree-preorder-traversal 3- Binary Tree Postorder Traversal

video: https://youtu.be/QhszUQhGGlA problem: https://leetcode.com/problems/binary-tree-postorder-traversal 4- Validate Binary Search Tree

video: https://youtu.be/s6ATEkipzow problem: https://leetcode.com/problems/validate-binary-search-tree 5- Path Sum

video: https://youtu.be/LSKQyOz_P8I problem: https://leetcode.com/problems/path-sum 6- Pacific Atlantic Water Flow

video: https://youtu.be/s-VkcjHqkGI problem: https://leetcode.com/problems/pacific-atlantic-water-flow BFS 1- Binary Tree Level Order Traversal

video: https://youtu.be/6ZnyEApgFYg problem: https://leetcode.com/problems/binary-tree-level-order-traversal 2- Maximum Depth of Binary Tree

video: https://youtu.be/hTM3phVI6YQ problem: https://leetcode.com/tag/breadth-first-search/ 3- Same Tree

video: https://youtu.be/vRbbcKXCxOw problem: https://leetcode.com/problems/same-tree/ Graph Algorithm for Technical Interview video: https://youtu.be/tWVWeAqZ0WU

Week 4:

Dynamic Programming (DP): Dynamic Programming (DP) Full Course: https://www.youtube.com/watch?v=oBt53YbR9Kk&t=29s

Easy Problems:

Counting Bits: https://leetcode.com/problems/counting-bits/ Video: https://youtu.be/AgMr5uojxbM

Divisor Game: https://leetcode.com/problems/divisor-game/ Video: https://www.youtube.com/watch?v=UbE4-ONpJcc&ab_channel=Fraz

Climbing Stairs: https://leetcode.com/problems/climbing-stairs/ Video: https://youtu.be/UUaMrNOvSqg

Best Time to Buy and Sell Stock: https://leetcode.com/problems/best-time-to-buy-and-sell-stock/ Video: https://youtu.be/excAOvwF_Wk

Min Cost Climbing Stairs: https://leetcode.com/problems/min-cost-climbing-stairs/ Video: https://youtu.be/8TDeGdY6qaM

Fibonacci Number: https://leetcode.com/problems/fibonacci-number/ Video: https://youtu.be/WvffCsh3Nt4

N-th Tribonacci Number: https://leetcode.com/problems/n-th-tribonacci-number/ Video: https://youtu.be/WvffCsh3Nt4

Medium Problems:

Word Break: https://leetcode.com/problems/word-break/ Video: https://youtu.be/_iIK7Gu7MNo

House Robber: https://leetcode.com/problems/house-robber/ Video: https://youtu.be/ZwDDLAeeBM0

Maximum Subarray: https://leetcode.com/problems/maximum-subarray/ Video: https://youtu.be/6HntYGZyjZI

Week 5 - Backtracking

simple trick backtracking is DP which undoes its operation if it doesn't find the answer: 1- Letter Combinations of a Phone Number problem https://leetcode.com/problems/letter-combinations-of-a-phone-number/ video: https://www.youtube.com/watch?v=irkG33phXuw

2- The k-th Lexicographical String of All Happy Strings of Length n problem https://leetcode.com/problems/the-k-th-lexicographical-string-of-all-happy-strings-of-length-n/ video: https://www.youtube.com/watch?v=t3Hb0NYOA1c

++++++++++++++++++++++++++++++++++++++++++ Some more nice problems (to be updated): Best Time to Buy and Sell Stock

First Bad Version

Isomorphic Strings

Two Sum

Squares of a Sorted Array

Merge Two Sorted Lists

Is Subsequence

Two Sum II - Input Array Is Sorted

Rotate Array

Reverse Linked List

Search Insert Position

Some good resources (to be updated): Bit Manipulation Reading: https://www.youtube.com/watch?v=7jkIUgLC29I

Video Tutorials

  • Love Babbar: Follow Love Babbar's YouTube channel for insightful explanations and problem-solving techniques.
  • Fraz: Explore Fraz's YouTube content for in-depth discussions on programming and algorithms.

Practice Platforms

  • LeetCode: Sharpen your coding skills and tackle algorithmic challenges.
  • GeeksforGeeks: Access a wide range of data structures and algorithms problems with detailed explanations.
  • Code Ninja: Engage in coding challenges and competitions to enhance your problem-solving skills.

Book

  • C++ Programming from Problem Analysis to Program Design: This book is an excellent resource for mastering C++ concepts, problem analysis, and program design.

Additional Platforms

  • Codeforces: Participate in competitive programming contests and improve your algorithmic skills.
  • HackerRank: Solve coding challenges and enhance your proficiency in various domains.

Topics to Study

  1. C++ Basics: Variables, loops, conditionals, functions, and basic syntax.
  2. Arrays: Manipulation, searching, and sorting algorithms.
  3. Linked Lists: Singly linked lists, doubly linked lists, and circular linked lists.
  4. Stacks and Queues: Implementation and real-world applications.
  5. Trees: Binary trees, binary search trees, and tree traversal algorithms.
  6. Graphs: Representation, traversal, and common algorithms (DFS, BFS).
  7. Sorting Algorithms: Bubble sort, selection sort, merge sort, quicksort.
  8. Searching Algorithms: Binary search, linear search.
  9. Dynamic Programming: Solving optimization problems using dynamic programming.
  10. Hashing: Hash functions, collision resolution, and applications.
  11. Greedy Algorithms: Problem-solving using the greedy approach.
  12. Bit Manipulation: Operations, counting set bits, and bitwise XOR.
  13. Recursion: Understanding and implementing recursive solutions.

Feel free to combine insights from these resources for a well-rounded learning experience. If you're contributing to this repository, consider sharing your solutions or insights gained from these resources to benefit the community.

100daysofdsachallenge's People

Contributors

muhammadshoaibkalim avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.