Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ivstudio/dsa

This repository serves as a study and exercise guide for JavaScript data structures and algorithms (DSA).
https://github.com/ivstudio/dsa

algorithms data-structures dsa javascript technical-interview-questions

Last synced: about 2 months ago
JSON representation

This repository serves as a study and exercise guide for JavaScript data structures and algorithms (DSA).

Awesome Lists containing this project

README

        

# JavaScript Data Structures and Algorithms (DSA)

## Description

This repository is a hands-on guide for learning data structures and algorithms (DSA). It includes TypeScript code examples, test cases, and helpful utilities to make writing and testing solutions easier and more effective.

### Testing

This project uses Jest for testing each solution to ensure everything works as expected.
To run all tests, simply use: `npm run test`.

### Table of Contents

- Algorithms
- [Anagram](/src/algorithms/anagram)
- [Array Operations](/src/algorithms/arraysOperations/)
- [Maximum Average Subarray I](/src/algorithms/maximumAverageSubarray)
- [Max Consecutive Ones III](/src/algorithms/maxConsecutiveOnes/)
- [Merge Sorted Array](/src/algorithms/arraysOperations/mergeSortedArray/)
- [Minimum Value to Get Positive Step by Step Sum](/src/algorithms/minimumValueToGetPositiveStepByStepSum/)
- [Minimum SizeSubarray Sum](/src/algorithms/minimumSizeSubarraySum/)
- [Minimum Window Substring](/src/algorithms/minimumWindowSubstring/)
- [Remove Duplicate Objects](/src/algorithms/arraysOperations/removeDuplicateObjects/)
- [Remove Duplicates from Sorted Array](/src/algorithms/removeDuplicatesfromSortedArray/)
- [Running Sum of 1d Array](/src/algorithms/runningSumOf1dArray/)
- [Squares of Sorted Array](/src/algorithms/squaresOfSortedArray/)
- [K Radius Subarray Averages](/src/algorithms/kRadiusSubarrayAverages/)
- [Capitalize](/src/algorithms/capitalize/)
- [Fibonacci](/src/algorithms/fibonacci)
- [FizzBuzz](/src/algorithms/fizzBuzz/)
- [Longest Substring](/src/algorithms/longestSubstring)
- [Palindrome](/src/algorithms/palindrome)
- [Pangram](/src/algorithms/pangram)
- [Reverse String](/src/algorithms/reverseString)
- [Sorting](/src/algorithms/sorting/)
- [String Operations](/src/algorithms/stringOperations/)
- [Missing Number](/src/algorithms/missingNumber)
- [Two Sum](/src/algorithms/twoSum)

- Data Structures
- [Linked List](/src/dataStructures/linkedList)
- [Add Two Numbers LL](/src/dataStructures/linkedList/addTwoNumbers/)
- [Merge Two Sorted LL](/src/dataStructures/linkedList//mergeTwoSortedLinkedLists/)
- [Queue](/src/dataStructures/queue/)

- Exercises
- Closures
- [Counter](/src/exercises/closures/counter/)
- [Interval](/src/exercises/closures/interval/)
- [Promise Time Limit](/src/exercises/promiseTimeLimit)

### Folder Structure

This project will continue to grow and evolve. It is organized by algorithms, data structures, and exercises. Each implementation includes unit tests.

```bash
root/

├── src/
│ ├── algorithms/
│ │ ├── sorting/
│ │ │ ├── bubbleSort.ts
│ │ │ ├── bubbleSort.test.js
│ │ │ └── ...
│ │ └── .../
│ ├── dataStructures/
│ │ ├── queue/
│ │ │ ├── queue.ts
│ │ │ ├── queue.test.js
│ │ └── ...
│ ├── exercises/
│ │ ├── debouce
│ │ │ ├── debounce.ts
│ │ │ ├── debounce.test.js
│ │ └── ...
├── package.json
└── jest.config.js
```

### Resources

- [VisuAlgo](https://visualgo.net/en)
- [Sorting Algorithms Animations](https://www.toptal.com/developers/sorting-algorithms)