{"id":26214506,"url":"https://github.com/prabusubra/dsa-systemdesign","last_synced_at":"2025-03-12T10:17:25.531Z","repository":{"id":272968199,"uuid":"918275764","full_name":"prabusubra/DSA-SystemDesign","owner":"prabusubra","description":null,"archived":false,"fork":false,"pushed_at":"2025-03-06T10:32:57.000Z","size":96,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-06T11:32:16.426Z","etag":null,"topics":["dsa","dsa-algorithm","dsa-learning-series","dsa-practice","dsalgo-questions","hld","interview","java","lld","system-design"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prabusubra.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-17T15:47:54.000Z","updated_at":"2025-03-06T10:33:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"4892edf7-649c-44a8-a4b9-5a828d366061","html_url":"https://github.com/prabusubra/DSA-SystemDesign","commit_stats":null,"previous_names":["prabusubra/dsa","prabusubra/dsa-systemdesign"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prabusubra%2FDSA-SystemDesign","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prabusubra%2FDSA-SystemDesign/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prabusubra%2FDSA-SystemDesign/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prabusubra%2FDSA-SystemDesign/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prabusubra","download_url":"https://codeload.github.com/prabusubra/DSA-SystemDesign/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243196653,"owners_count":20251861,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dsa","dsa-algorithm","dsa-learning-series","dsa-practice","dsalgo-questions","hld","interview","java","lld","system-design"],"created_at":"2025-03-12T10:17:24.970Z","updated_at":"2025-03-12T10:17:25.520Z","avatar_url":"https://github.com/prabusubra.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# DSA Questions for Experienced Java Candidates\n\n## Table of Contents\n1. Arrays\n2. Strings\n3. Linked Lists\n4. Stacks and Queues\n5. Trees\n6. Graphs\n7. Dynamic Programming\n8. Sorting and Searching\n9. Bit Manipulation\n10. Backtracking\n11. Greedy\n12. Miscellaneous\n\n---\n\n## 1. Arrays\n1. [Find the maximum subarray sum (Kadane's Algorithm)](https://leetcode.com/problems/maximum-subarray/).\n2. [Rotate an array by k steps](https://leetcode.com/problems/rotate-array/).\n3. [Merge two sorted arrays](https://leetcode.com/problems/merge-sorted-array/).\n4. [Find the duplicate number in an array containing n+1 integers](https://leetcode.com/problems/find-the-duplicate-number/).\n5. [Implement a function to find the intersection of two arrays](https://leetcode.com/problems/intersection-of-two-arrays/).\n6. [Sort an array of 0s, 1s, and 2s (Dutch National Flag problem)](https://leetcode.com/problems/sort-colors/).\n7. [Find the smallest subarray with a sum greater than a given value](https://leetcode.com/problems/minimum-size-subarray-sum/).\n8. [Implement a binary search algorithm](https://leetcode.com/problems/binary-search/).\n9. [Find the median of two sorted arrays](https://leetcode.com/problems/median-of-two-sorted-arrays/).\n10. [Maximum product subarray](https://leetcode.com/problems/maximum-product-subarray/).\n\n\n## 1.1 Prefix Sum\n\n1. [LeetCode 303: Range Sum Query – Immutable](https://leetcode.com/problems/range-sum-query-immutable/)\n2. [LeetCode 560: Subarray Sum Equals K](https://leetcode.com/problems/subarray-sum-equals-k/)\n3. [LeetCode 238: Product of Array Except Self](https://leetcode.com/problems/product-of-array-except-self/)\n4. [LeetCode 325: Maximum Size Subarray Sum Equals k](https://leetcode.com/problems/maximum-size-subarray-sum-equals-k/)\n5. [GFG: Longest Subarray With Sum K](https://www.geeksforgeeks.org/longest-sub-array-sum-k/)\n6. [LeetCode 974: Subarray Sums Divisible by K](https://leetcode.com/problems/subarray-sums-divisible-by-k/)\n  \n## Additional Resources\n- **Leetcode Practice**: [Prefix Sum Problems on Leetcode](https://leetcode.com/tag/prefix-sum/)\n- **GeeksforGeeks Practice**: [Prefix Sum Problems on GFG](https://www.geeksforgeeks.org/introductions-to-prefix-sum-array/)\n---\n\n## 2. Strings\n1. [Check if two strings are anagrams](https://leetcode.com/problems/valid-anagram/).\n2. [Reverse a string without affecting special characters](https://practice.geeksforgeeks.org/problems/reverse-a-string/1).\n3. [Implement a function to check if a string is a palindrome](https://leetcode.com/problems/valid-palindrome/).\n4. [Longest substring without repeating characters](https://leetcode.com/problems/longest-substring-without-repeating-characters/).\n5. [Longest palindromic substring](https://leetcode.com/problems/longest-palindromic-substring/).\n6. [Implement strstr() or indexOf()](https://leetcode.com/problems/implement-strstr/).\n7. [Group anagrams from a list of strings](https://leetcode.com/problems/group-anagrams/).\n8. [Count and say problem](https://leetcode.com/problems/count-and-say/).\n9. [Find the minimum window substring](https://leetcode.com/problems/minimum-window-substring/).\n10. [Roman to Integer conversion](https://leetcode.com/problems/roman-to-integer/).\n\n## 3. Linked Lists\n1. [Reverse a singly linked list](https://leetcode.com/problems/reverse-linked-list/).\n2. [Detect and remove a cycle in a linked list](https://leetcode.com/problems/linked-list-cycle/).\n3. [Merge two sorted linked lists](https://leetcode.com/problems/merge-two-sorted-lists/).\n4. [Find the intersection of two linked lists](https://leetcode.com/problems/intersection-of-two-linked-lists/).\n5. [Remove nth node from the end of the list](https://leetcode.com/problems/remove-nth-node-from-end-of-list/).\n6. [Clone a linked list with random pointers](https://leetcode.com/problems/copy-list-with-random-pointer/).\n7. [Flatten a multilevel doubly linked list](https://leetcode.com/problems/flatten-a-multilevel-doubly-linked-list/).\n8. [Add two numbers represented by linked lists](https://leetcode.com/problems/add-two-numbers/).\n9. [Find the middle node of a linked list](https://leetcode.com/problems/middle-of-the-linked-list/).\n10. [Check if a linked list is a palindrome](https://leetcode.com/problems/palindrome-linked-list/).\n\n## 4. Stacks and Queues\n1. [Implement a stack using arrays or linked lists](https://practice.geeksforgeeks.org/problems/implement-stack-using-array/1).\n2. [Implement a queue using two stacks](https://leetcode.com/problems/implement-queue-using-stacks/).\n3. [Next greater element in an array](https://leetcode.com/problems/next-greater-element-i/).\n4. [Valid parentheses problem](https://leetcode.com/problems/valid-parentheses/).\n5. [Implement a circular queue](https://leetcode.com/problems/design-circular-queue/).\n6. [Sort a stack using recursion](https://practice.geeksforgeeks.org/problems/sort-a-stack/1).\n7. [LRU Cache implementation](https://leetcode.com/problems/lru-cache/).\n8. [Evaluate a postfix expression](https://practice.geeksforgeeks.org/problems/evaluation-of-postfix-expression/0).\n9. [Sliding window maximum](https://leetcode.com/problems/sliding-window-maximum/).\n10. [Min stack implementation](https://leetcode.com/problems/min-stack/).\n\n## 5. Trees\n1. [Implement in-order, pre-order, and post-order traversal](https://leetcode.com/problems/binary-tree-inorder-traversal/).\n2. [Level-order traversal of a binary tree](https://leetcode.com/problems/binary-tree-level-order-traversal/).\n3. [Find the height of a binary tree](https://practice.geeksforgeeks.org/problems/height-of-binary-tree/1).\n4. [Check if a binary tree is balanced](https://leetcode.com/problems/balanced-binary-tree/).\n5. [Lowest common ancestor of two nodes in a binary tree](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/).\n6. [Serialize and deserialize a binary tree](https://leetcode.com/problems/serialize-and-deserialize-binary-tree/).\n7. [Binary search tree validation](https://leetcode.com/problems/validate-binary-search-tree/).\n8. [Kth smallest element in a BST](https://leetcode.com/problems/kth-smallest-element-in-a-bst/).\n9. [Path sum problems](https://leetcode.com/problems/path-sum/).\n10. [Convert a binary tree to a doubly linked list](https://leetcode.com/problems/flatten-binary-tree-to-linked-list/).\n11. [Pair Sum](https://www.geeksforgeeks.org/problems/find-a-pair-with-given-target-in-bst/1).\n\n## 6. Graphs\n1. [Implement depth-first search (DFS) and breadth-first search (BFS)](https://leetcode.com/problems/clone-graph/).\n2. [Detect a cycle in a directed and undirected graph](https://practice.geeksforgeeks.org/problems/detect-cycle-in-a-directed-graph/1).\n3. [Find the shortest path in an unweighted graph](https://practice.geeksforgeeks.org/problems/shortest-path-in-undirected-graph/1).\n4. [Implement Dijkstra's algorithm](https://practice.geeksforgeeks.org/problems/implementing-dijkstra-set-1-adjacency-matrix/1).\n5. [Implement Kruskal's and Prim's algorithms for MST](https://practice.geeksforgeeks.org/problems/minimum-spanning-tree/1).\n6. [Topological sort of a directed acyclic graph (DAG)](https://practice.geeksforgeeks.org/problems/topological-sort/1).\n7. [Number of islands problem](https://leetcode.com/problems/number-of-islands/).\n8. [Word ladder problem](https://leetcode.com/problems/word-ladder/).\n9. [Floyd-Warshall algorithm](https://practice.geeksforgeeks.org/problems/implementing-floyd-warshall/1).\n10. [Check if a graph is bipartite](https://leetcode.com/problems/is-graph-bipartite/).\n\n## 7. Dynamic Programming\n1. [Longest increasing subsequence](https://leetcode.com/problems/longest-increasing-subsequence/).\n2. [Longest Common Sequence](https://leetcode.com/problems/longest-common-subsequence).\n3. [0/1 Knapsack problem](https://practice.geeksforgeeks.org/problems/0-1-knapsack-problem/0).\n4. [Coin change problem](https://leetcode.com/problems/coin-change/).\n5. [Longest common subsequence](https://leetcode.com/problems/longest-common-subsequence/).\n6. [Edit distance problem](https://leetcode.com/problems/edit-distance/).\n7. [Maximum profit in a rod cutting problem](https://practice.geeksforgeeks.org/problems/rod-cutting/0).\n8. [Matrix chain multiplication](https://practice.geeksforgeeks.org/problems/matrix-chain-multiplication/0).\n9. [Subset sum problem](https://practice.geeksforgeeks.org/problems/subset-sum-problem/0).\n10. [Maximum sum increasing subsequence](https://practice.geeksforgeeks.org/problems/maximum-sum-increasing-subsequence/0).\n11. [Decode ways](https://leetcode.com/problems/decode-ways/).\n12. [Palindrome Partitioning II](https://leetcode.com/problems/palindrome-partitioning-ii/).\n13. [Count Number of Texts](https://leetcode.com/problems/count-number-of-texts/).\n\n## 8. Sorting and Searching\n1. [Quick sort implementation](https://practice.geeksforgeeks.org/problems/quick-sort/0).\n2. [Merge sort implementation](https://practice.geeksforgeeks.org/problems/merge-sort/1).\n3. [Heap sort implementation](https://practice.geeksforgeeks.org/problems/heap-sort/0).\n4. [Binary search variations (lower bound, upper bound)](https://practice.geeksforgeeks.org/problems/first-and-last-occurrences-of-x/0).\n5. [Search in a rotated sorted array](https://leetcode.com/problems/search-in-rotated-sorted-array/).\n6. [Find the kth largest element in an array](https://leetcode.com/problems/kth-largest-element-in-an-array/).\n7. [Count inversions in an array](https://practice.geeksforgeeks.org/problems/inversion-of-array/0).\n8. [Find the peak element](https://leetcode.com/problems/find-peak-element/).\n9. [Median in a stream of integers](https://leetcode.com/problems/find-median-from-data-stream/).\n10. [Aggressive cows (binary search problem)](https://practice.geeksforgeeks.org/problems/aggressive-cows/0).\n\n## 9. Bit Manipulation\n1. [Check if a number is a power of two](https://leetcode.com/problems/power-of-two/).\n2. [Count the number of set bits in an integer](https://leetcode.com/problems/number-of-1-bits/).\n3. [Find the single number in an array where every other number appears twice](https://leetcode.com/problems/single-number/).\n4. [XOR of all numbers from 1 to n](https://practice.geeksforgeeks.org/problems/bit-difference/0).\n5. [Swap two numbers without using a temporary variable](https://practice.geeksforgeeks.org/problems/swap-two-numbers/0).\n6. [Find the two non-repeating elements in an array of repeating elements](https://practice.geeksforgeeks.org/problems/two-non-repeating-elements-in-an-array/0).\n7. [Reverse bits of a given 32-bit unsigned integer](https://leetcode.com/problems/reverse-bits/).\n8. [Find the missing number in an array](https://leetcode.com/problems/missing-number/).\n9. [Implement bitwise AND of numbers range](https://leetcode.com/problems/bitwise-and-of-numbers-range/).\n10. [Power of two, three, or four determination using bitwise operations](https://practice.geeksforgeeks.org/problems/power-of-2-and-3/0).\n\n## 10. Backtracking\n1. [Solve the N-Queens problem](https://leetcode.com/problems/n-queens/).\n2. [Sudoku solver](https://leetcode.com/problems/sudoku-solver/).\n3. [Word search in a 2D grid](https://leetcode.com/problems/word-search/).\n4. [Generate all subsets of a set (power set)](https://leetcode.com/problems/subsets/).\n5. [Generate all permutations of a string](https://leetcode.com/problems/permutations/).\n6. [Rat in a maze problem](https://practice.geeksforgeeks.org/problems/rat-in-a-maze-problem/1).\n7. [M-coloring problem](https://practice.geeksforgeeks.org/problems/m-coloring-problem/1).\n8. [Knight's tour problem](https://practice.geeksforgeeks.org/problems/knight-tour-problem/0).\n9. [Hamiltonian path and cycle problem](https://practice.geeksforgeeks.org/problems/hamiltonian-path/0).\n10. [Find all palindrome partitioning of a string](https://leetcode.com/problems/palindrome-partitioning/).\n11. [Letter Combinations of a Phone Number](https://leetcode.com/problems/letter-combinations-of-a-phone-number/)\n\n## 11. Greedy\n1. [Jump Game](https://leetcode.com/problems/jump-game).\n2. [Gas Station](https://leetcode.com/problems/gas-station).\n\n## 12. Miscellaneous\n1. [Design a stack that supports push, pop, top, and retrieving the minimum element in constant time](https://leetcode.com/problems/min-stack/).\n2. [Implement an LFU Cache](https://leetcode.com/problems/lfu-cache/).\n3. [Find the maximum meetings in one room](https://practice.geeksforgeeks.org/problems/n-meetings-in-one-room/0).\n4. [Implement a trie (prefix tree) and its operations](https://leetcode.com/problems/implement-trie-prefix-tree/).\n5. [Find the maximum profit in stock buy and sell](https://leetcode.com/problems/best-time-to-buy-and-sell-stock/).\n6. [Median of a data stream](https://leetcode.com/problems/find-median-from-data-stream/).\n7. [Count distinct elements in every window of size k](https://practice.geeksforgeeks.org/problems/count-distinct-elements-in-every-window/1).\n\n---\n\n### Notes\n- **Coding Practice Platforms**: Use platforms like LeetCode, HackerRank, Codeforces, or GeeksforGeeks for coding practice.\n- **Time Complexity**: Always analyze the time and space complexity of your solution.\n- **Mock Interviews**: Conduct mock interviews to assess your problem-solving and coding skills.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprabusubra%2Fdsa-systemdesign","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprabusubra%2Fdsa-systemdesign","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprabusubra%2Fdsa-systemdesign/lists"}