0% found this document useful (0 votes)
377 views8 pages

Complete Data Structures and Algorithms Guide

This document provides a list of 150 questions related to common data structures and algorithms. The questions are grouped into categories like arrays, linked lists, binary search, sliding window, stacks and queues, trees, graphs, and dynamic programming. They include links to questions on LeetCode ranging from easy to medium difficulty levels. The document encourages learning by solving problems rather than just for jobs, and notes that the questions are mostly internship-level.

Uploaded by

Adithya Narayan
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
0% found this document useful (0 votes)
377 views8 pages

Complete Data Structures and Algorithms Guide

This document provides a list of 150 questions related to common data structures and algorithms. The questions are grouped into categories like arrays, linked lists, binary search, sliding window, stacks and queues, trees, graphs, and dynamic programming. They include links to questions on LeetCode ranging from easy to medium difficulty levels. The document encourages learning by solving problems rather than just for jobs, and notes that the questions are mostly internship-level.

Uploaded by

Adithya Narayan
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 8

30DaysCoding.

com

150 Questions: Data structures


Solve and understand these questions, make notes, watch solutions, and have fun. Don’t just
solve them to get a job, but to learn something new! These are mostly internship-level
questions (easy-medium), but will help you in general with problem solving!

Arrays
Easy
- https://leetcode.com/problems/roman-to-integer/
- https://leetcode.com/problems/valid-parentheses/
- https://leetcode.com/problems/remove-duplicates-from-sorted-array/
- https://leetcode.com/problems/remove-element/
- https://leetcode.com/problems/best-time-to-buy-and-sell-stock/
- https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/
- https://leetcode.com/problems/intersection-of-two-arrays-ii/
- https://leetcode.com/problems/single-number/
- https://leetcode.com/problems/contains-duplicate/
- https://leetcode.com/problems/plus-one/
- https://leetcode.com/problems/move-zeroes/
- https://leetcode.com/problems/rotate-image/

Medium
- https://leetcode.com/problems/3sum/
- https://leetcode.com/problems/4sum/
- https://leetcode.com/problems/find-first-and-last-position-of-element-in-sorted-array
/
- https://leetcode.com/problems/group-anagrams/
- https://leetcode.com/problems/reduce-array-size-to-the-half/
- https://leetcode.com/problems/merge-intervals/
30DaysCoding.com

Linked list
Easy
- https://leetcode.com/problems/delete-node-in-a-linked-list/
- https://leetcode.com/problems/remove-nth-node-from-end-of-list/
- https://leetcode.com/problems/merge-two-sorted-lists/
- https://leetcode.com/problems/palindrome-linked-list/
- https://leetcode.com/problems/linked-list-cycle/

Medium
- https://leetcode.com/problems/intersection-of-two-linked-lists/
- https://leetcode.com/problems/remove-linked-list-elements/
- https://leetcode.com/problems/middle-of-the-linked-list/
- https://leetcode.com/problems/merge-k-sorted-lists/

Binary search
Easy
- https://leetcode.com/problems/binary-search/
- https://leetcode.com/problems/intersection-of-two-arrays/
- https://leetcode.com/problems/first-bad-version/
- https://leetcode.com/problems/arranging-coins/
- https://leetcode.com/problems/search-insert-position/

Medium
- https://leetcode.com/problems/search-in-rotated-sorted-array/
- https://leetcode.com/problems/find-first-and-last-position-of-element-in-sorted-array
/
- https://leetcode.com/problems/kth-smallest-element-in-a-bst/
- https://leetcode.com/problems/find-peak-element/
- https://leetcode.com/problems/split-array-largest-sum/
30DaysCoding.com

Sliding window
Read
- Leetcode Pattern 2 | Sliding Windows for Strings | by csgator | Leetcode Patterns

Easy/Medium
- https://leetcode.com/problems/longest-substring-without-repeating-characters/
- https://leetcode.com/problems/find-all-anagrams-in-a-string/description/
- https://leetcode.com/problems/minimum-window-substring/description/
- https://leetcode.com/problems/count-number-of-nice-subarrays/
- https://leetcode.com/problems/fruit-into-baskets/

2 pointers
- https://leetcode.com/problems/intersection-of-two-arrays/
- https://leetcode.com/problems/maximum-ascending-subarray-sum/
- https://leetcode.com/problems/backspace-string-compare/
- https://leetcode.com/problems/long-pressed-name/
- https://leetcode.com/problems/fruit-into-baskets/
- https://leetcode.com/problems/max-consecutive-ones-iii/
- https://leetcode.com/problems/container-with-most-water/

Stacks, Queues
- Easy
- https://leetcode.com/problems/valid-parentheses/
- https://leetcode.com/problems/implement-queue-using-stacks/
- https://leetcode.com/problems/min-stack/

- Medium
- https://leetcode.com/problems/design-circular-queue/
- https://leetcode.com/problems/decode-string/
30DaysCoding.com

- https://leetcode.com/problems/open-the-lock/
- https://leetcode.com/problems/daily-temperatures/
- https://leetcode.com/problems/minimum-add-to-make-parentheses-valid/

BFS, DFS
Read
- Leetcode Pattern 1 | BFS + DFS == 25% of the problems — part 1
- Leetcode Pattern 1 | DFS + BFS == 25% of the problems — part 2

Questions
- https://leetcode.com/problems/flood-fill/
- https://leetcode.com/problems/binary-tree-preorder-traversal/
- https://leetcode.com/problems/number-of-islands/
- https://leetcode.com/problems/walls-and-gates/
- https://leetcode.com/problems/max-area-of-island/
- https://leetcode.com/problems/number-of-provinces/
- https://leetcode.com/problems/perfect-squares/
- https://leetcode.com/problems/course-schedule/
- https://www.geeksforgeeks.org/detect-cycle-undirected-graph/
- https://leetcode.com/problems/word-ladder/
- https://leetcode.com/problems/01-matrix/
- https://leetcode.com/problems/rotting-oranges/
- https://leetcode.com/problems/perfect-squares/
- https://leetcode.com/problems/all-paths-from-source-to-target/
- https://leetcode.com/problems/number-of-closed-islands/

Recursion
Easy
- 509. Fibonacci Number
- Reverse String
30DaysCoding.com

- 24. Swap Nodes in Pairs


- 206. Reverse Linked List
- Leetcode #700 Search in a Binary Search Tree
- 70. Climbing Stairs
- Leetcode #50 Pow(x, n)

Backtracking
Read
- Leetcode Pattern 3 | Backtracking | by csgator | Leetcode Patterns
- A general approach to backtracking questions in Java (Subsets, Permutations,
Combination Sum, Palindrome Partitioning)

Easy
- Word Search
- Leetcode #78 Subsets
- 90. Subsets II
- Letter Case Permutation

Medium
- 39. Combination Sum
- 17. Letter Combinations of a Phone Number
- Combinations
- Leetcode : Combination Sum II
- 216. Combination Sum III
- Combination Sum IV
- 46. Permutations
- 47. Permutations II
- 31. Next Permutation
- 51. N-Queens
30DaysCoding.com

Trees
Read
- Leetcode Pattern 0 | Iterative traversals on Trees | by csgator | Leetcode Patterns

Easy
- https://leetcode.com/problems/binary-tree-preorder-traversal/
- https://leetcode.com/problems/binary-tree-inorder-traversal/
- https://leetcode.com/problems/binary-tree-postorder-traversal/
- https://leetcode.com/problems/validate-binary-search-tree/
- https://leetcode.com/problems/minimum-distance-between-bst-nodes/
- https://leetcode.com/problems/symmetric-tree/
- https://leetcode.com/problems/same-tree/
- https://leetcode.com/problems/path-sum/
- https://leetcode.com/problems/maximum-depth-of-binary-tree/
- https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/

- Medium
- https://leetcode.com/problems/validate-binary-search-tree/
- https://leetcode.com/problems/binary-search-tree-iterator/
- https://leetcode.com/problems/unique-binary-search-trees/
- https://leetcode.com/problems/serialize-and-deserialize-bst/
- https://leetcode.com/problems/binary-tree-right-side-view/
- https://leetcode.com/problems/binary-tree-level-order-traversal/
- https://leetcode.com/problems/binary-tree-level-order-traversal-ii/
- https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/

Dynamic programming
Easy
- https://leetcode.com/problems/maximum-subarray/
30DaysCoding.com

- https://leetcode.com/problems/fibonacci-number/
- https://leetcode.com/problems/climbing-stairs/
- https://leetcode.com/problems/min-cost-climbing-stairs/
- https://leetcode.com/problems/n-th-tribonacci-number/

Medium
- https://leetcode.com/problems/coin-change/
- https://leetcode.com/problems/minimum-falling-path-sum/
- https://leetcode.com/problems/minimum-cost-for-tickets/
- https://leetcode.com/problems/2-keys-keyboard/
- https://leetcode.com/problems/maximum-product-subarray/
- https://leetcode.com/problems/triangle/
- https://leetcode.com/problems/ones-and-zeroes/
- https://leetcode.com/problems/longest-arithmetic-subsequence/
- https://leetcode.com/problems/partition-equal-subset-sum/
- https://leetcode.com/problems/house-robber/
- https://leetcode.com/problems/decode-ways/
- https://leetcode.com/problems/word-break/
- https://leetcode.com/problems/edit-distance/
- https://leetcode.com/problems/longest-increasing-subsequence/

Graphs
Easy
- https://leetcode.com/problems/employee-importance/
- https://leetcode.com/problems/find-the-town-judge/

Medium
- https://leetcode.com/problems/course-schedule-ii/
- https://leetcode.com/problems/redundant-connection/
- https://leetcode.com/problems/surrounded-regions/
- https://leetcode.com/problems/accounts-merge/
30DaysCoding.com

- https://leetcode.com/problems/network-delay-time/
- https://leetcode.com/problems/is-graph-bipartite/
- https://leetcode.com/problems/find-eventual-safe-states/
- https://leetcode.com/problems/keys-and-rooms/
- https://leetcode.com/problems/possible-bipartition/
- https://leetcode.com/problems/most-stones-removed-with-same-row-or-column/
- https://leetcode.com/problems/rotting-oranges/
- https://leetcode.com/problems/number-of-operations-to-make-network-connected/

Additional questions
- https://leetcode.com/problems/longest-common-prefix/
- https://leetcode.com/problems/implement-trie-prefix-tree/

Random
- https://leetcode.com/explore/

Videos
Some long videos, to revise or study in one long stretch!
- Data Structures Easy to Advanced Course - Full Tutorial from a Google Engineer
- Introduction to Data Structures & Algorithms | Course Details & Prerequisites
- Algorithms Course - Graph Theory Tutorial from a Google Engineer

You might also like