# DSA

**Website to practice and learn :-**

[HackerRank](https://www.hackerrank.com/) | [Interview Query](https://www.interviewquery.com/) | [InterviewBit](https://www.interviewbit.com/) | [Leetcode Patterns](https://seanprashad.com/leetcode-patterns/) | [Deep-ML](https://www.deep-ml.com/) | [Practice](https://neetcode.io/practice) | [Strivers A2Z DSA Course/Sheet - Crack Any FAANG or PBCs](https://takeuforward.org/strivers-a2z-dsa-course/strivers-a2z-dsa-course-sheet-2/) | [SWE Math Weekly - one CP-style practical math challenge every week](https://arpitbhayani.me/math) | [Puzzles - GeeksforGeeks](https://www.geeksforgeeks.org/aptitude/puzzles/) | [Puzzles - InterviewBit](https://www.interviewbit.com/puzzles/) | [Code Implementation in C++ & Python](https://github.com/djeada/Algorithms-And-Data-Structures/tree/master) | [Algorithm and DS Youtube Course (whiteboard) ](https://www.youtube.com/playlist?list=PLrS21S1jm43igE57Ye_edwds_iL7ZOAG4)| [GeeksforGeeks](https://www.geeksforgeeks.org/explore?page=1\&category=python\&sortBy=submissions) | [Data Structures and Algorithms Roadmap](https://roadmap.sh/datastructures-and-algorithms) | <https://arpitbhayani.me/math>&#x20;

#### Patterns

1. Two Pointers
2. Sliding Window
3. Binary Search
4. Merge Intervals
5. Top K elements

**Patterns videos and courses :-**

* [Free Coding Interview Tutorial - Cracking the Coding interview: Learn 5 Essential Patterns | Udemy](https://www.udemy.com/course/learn-5-important-patterns-for-coding-interview-problems/)
* [Grokking Dynamic Programming Patterns: Coding Interviews | Udemy](https://www.udemy.com/course/dynamic-programming-algorithms-coding-interview-questions/?couponCode=LEARNNOWPLANS)
* [Two Pointer and Sliding Window Playlist | Language Independent Course - YouTube](https://www.youtube.com/playlist?list=PLgUwDviBIf0q7vrFA_HEWcqRqMpCXzYAL)

#### Time and Space Complexity

<https://www.bigocalc.com/> | <https://www.timecomplexity.ai/> | <https://bigocalculator.online/>

Following are resources for the same to understand T\&S complexity .....

* [Step-by-Step Guide: Calculating Time and Space Complexity | Algorithm Examples](https://blog.algorithmexamples.com/big-o-notation/step-by-step-guide-calculating-time-and-space-complexity/)
* [Time and Space Complexity Tutorials & Notes | Basic Programming | HackerEarth](https://www.hackerearth.com/practice/basic-programming/complexity-analysis/time-and-space-complexity/tutorial/)
* [Mastering Algorithm Complexity: Time & Space Optimization](https://daily.dev/blog/mastering-algorithm-complexity-time-and-space-optimization)
* [Understanding Time and Space Complexity in Algorithms](https://www.ijsr.net/archive/v8i10/SR24923134130.pdf)
* [Big-O Notation - For Coding Interviews](https://www.youtube.com/watch?v=BgLTDT03QtU)
* [Time and Space Complexity - Strivers A2Z DSA Course](https://www.youtube.com/watch?v=FPu9Uld7W-E)
* [Time and Space Complexity COMPLETE Tutorial - What is Big O?](https://www.youtube.com/watch?v=mV3wrLBbuuE)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://59r.gitbook.io/ml-university/dsa-data-structure-and-algorithms.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
