|
| 1 | +# 📚 DSA with JavaScript |
| 2 | + |
| 3 | +Welcome to **DSA with JavaScript**, a comprehensive collection of Data Structures and Algorithms concepts, patterns, and problems – all solved in JavaScript. |
| 4 | + |
| 5 | +This repository is maintained by [ExploitEngineer](https://github.com/ExploitEngineer) and is built for **beginners and intermediate learners** looking to master DSA for technical interviews, coding contests, and real-world problem solving. |
| 6 | + |
| 7 | +--- |
| 8 | + |
| 9 | +## 📁 Topics Covered |
| 10 | + |
| 11 | +### ✅ Topic 1: Basic JavaScript Logic: Variables, Operators, and Operations |
| 12 | +- Sum of integers, type coercion, swap variables |
| 13 | +- Operators: Arithmetic, Relational, Logical, Unary |
| 14 | +- Math functions: `Math.round()`, `Math.sqrt()`, `Math.random()`, etc. |
| 15 | +- Practical problems: Area, Perimeter, OTP generator |
| 16 | + |
| 17 | +--- |
| 18 | + |
| 19 | +### ✅ Topic 2: Conditional Statements and Control Flow |
| 20 | +- `if`, `else`, `switch`, ternary operator |
| 21 | +- Problems: Valid user, shop discount, INR denomination, etc. |
| 22 | + |
| 23 | +--- |
| 24 | + |
| 25 | +### ✅ Topic 3: Loops |
| 26 | +- `for`, `while`, `do-while` loops |
| 27 | +- Print patterns, factorial, reverse digits, strong number, guess the number |
| 28 | + |
| 29 | +--- |
| 30 | + |
| 31 | +### ✅ Topic 4: Pattern Programming |
| 32 | +- Nested loops & star-pattern problems |
| 33 | + |
| 34 | +--- |
| 35 | + |
| 36 | +### ✅ Topic 5: Arrays |
| 37 | +- Static & dynamic arrays |
| 38 | +- Max, second max, reverse, zero/one segregation |
| 39 | + |
| 40 | +--- |
| 41 | + |
| 42 | +### ✅ Topic 6: Strings |
| 43 | +- Reverse string, palindrome check, toggle case, frequency counter |
| 44 | + |
| 45 | +--- |
| 46 | + |
| 47 | +### ✅ Topic 7: Object-Oriented Programming (OOP) |
| 48 | +- Class, object, `this`, constructor, prototype, design problems |
| 49 | + |
| 50 | +--- |
| 51 | + |
| 52 | +## 🚀 Real Game Starts Here |
| 53 | + |
| 54 | +--- |
| 55 | + |
| 56 | +### ✅ Topic 8: Advanced Array Problems |
| 57 | +- Rotation, duplicate removal, merge sorted arrays |
| 58 | +- Kadane’s Algo, stock buy/sell, rainwater trapping, majority element |
| 59 | + |
| 60 | +--- |
| 61 | + |
| 62 | +### ✅ Topic 9: Sorting Algorithms - Part 1 |
| 63 | +- Bubble Sort, Selection Sort, Insertion Sort |
| 64 | + |
| 65 | +--- |
| 66 | + |
| 67 | +### ✅ Topic 10: Sorting Algorithms - Part 2 |
| 68 | +- Quick Sort, Merge Sort |
| 69 | + |
| 70 | +--- |
| 71 | + |
| 72 | +### ✅ Topic 11: Cyclic Sort |
| 73 | +- Missing number, first positive, disappeared numbers |
| 74 | + |
| 75 | +--- |
| 76 | + |
| 77 | +### ✅ Binary Search Problems |
| 78 | +- Classic binary search, rotated array, Koko eating bananas, book allocation |
| 79 | + |
| 80 | +--- |
| 81 | + |
| 82 | +### ✅ Hashing |
| 83 | +- Frequency count, two sum, pangram check, subarray with sum K |
| 84 | + |
| 85 | +--- |
| 86 | + |
| 87 | +### ✅ Linked List |
| 88 | +- Basic operations, reverse, middle, cycle, k-group reverse |
| 89 | + |
| 90 | +--- |
| 91 | + |
| 92 | +### ✅ Stack and Queue |
| 93 | +- Implementations, valid parentheses, NGE, histograms |
| 94 | + |
| 95 | +--- |
| 96 | + |
| 97 | +### ✅ Recursion & Backtracking |
| 98 | +- Fibonacci, Tower of Hanoi, subsets, permutations, Sudoku solver |
| 99 | + |
| 100 | +--- |
| 101 | + |
| 102 | +### ✅ Binary Tree |
| 103 | +- Traversals (DFS/BFS), max depth, symmetry, top/left view, LCA, tree construction |
| 104 | + |
| 105 | +--- |
| 106 | + |
| 107 | +### ✅ Binary Search Tree (BST) |
| 108 | +- Validate BST, kth smallest, BST node deletion |
| 109 | + |
| 110 | +--- |
| 111 | + |
| 112 | +### ✅ Graphs |
| 113 | +- BFS, DFS, cycle detection, topological sort, shortest path algorithms |
| 114 | + |
| 115 | +--- |
| 116 | + |
| 117 | +## 🧠 Goal |
| 118 | +Build a **solid understanding** of all DSA concepts in JavaScript and create an easy-to-reference solution base for future interviews and projects. |
| 119 | + |
| 120 | +--- |
| 121 | + |
| 122 | +## 📌 Contribution |
| 123 | +This is a personal learning repository. However, feel free to fork it and use the structure for your own learning journey. |
| 124 | + |
| 125 | +--- |
| 126 | + |
| 127 | +## 📬 Stay Connected |
| 128 | +Follow my journey on [GitHub](https://github.com/ExploitEngineer) and feel free to connect if you’re learning along too! |
| 129 | + |
| 130 | +--- |
| 131 | + |
| 132 | +**Let's crack DSA together – one problem at a time. 💻✨** |
| 133 | + |
0 commit comments