Day 1
Understanding Arrays
🔶 Learn the basics of arrays: indexing, access, and memory allocation.
🔶 Study the advantages and limitations of arrays.
Day 2
Array Operations and Complexity
🔷 Explore common array operations: insertion, deletion, searching.
🔷 Understand time and space complexity analysis for array operations.
01
Day 3
Array Traversal and Searching
🔶 Learn various methods for array traversal: linear, reverse, and 2D
arrays.
🔶 Practice searching algorithms such as linear search and binary search.
Day 4
Sorting Algorithms
🔷 Study sorting algorithms applicable to arrays: bubble sort, selection
sort, insertion sort.
🔷 Analyze time complexity and compare these algorithms.
Day 5
Dynamic Arrays (ArrayLists)
🔶 Understand dynamic arrays (ArrayList in Java) and their advantages.
🔶 Implement dynamic arrays and practice resizing.
02
Day 6
Subarrays and Subsequences
🔷 Explore subarray and subsequence concepts.
🔷 Solve problems involving subarrays and subsequences.
Day 7
Array Rotation and Reversal
🔶 Learn techniques for rotating and reversing arrays.
🔶 Practice problems involving array rotation and reversal.
Day 8
Duplicate and Missing Elements
🔷 Study approaches to find duplicate and missing elements in an array.
🔷 Solve problems related to duplicate and missing values.
03
Day 9
Frequency Count and Prefix Sum
🔷 Explore techniques like frequency counting and prefix sum.
🔷 Practice problems that involve counting elements and finding prefix
sums.
Day 10
Review and Advanced Problems
🔶 Review all the array concepts and problems you've learned.
🔶 Challenge yourself with advanced array problems.
Important Graph Problems to Practice (in addition to the ones
mentioned above):
🔷 Two Sum (Find two elements that sum to a given target)
🔷 Maximum Subarray Sum (Kadane's Algorithm)
🔷 Majority Element (Element that appears more than n/2 times)
🔷 Product of Array Except Self
🔷 Container With Most Water
🔷 Best Time to Buy and Sell Stock (Maximize profit with stock prices)
🔷 Merge Intervals (Merging overlapping intervals)
🔷 Rotate Array (Rotate an array to the right by k steps)
🔷 Largest Subarray with 0 Sum
🔷 Next Permutation (Find the next greater permutation of a sequence)
04
Now, It’s Time For Practice :)
01. Set Matrix Zeroes
Given an m x n integer matrix matrix, if an element is 0,
set its entire row and column to 0's.
Practice
02. Two Sum
Given an array of integers nums and an integer target,
return indices of the two numbers such that they add up
to target.
Practice
05
03. Best Time to Buy and Sell Stock II
You are given an integer array prices where prices[i] is the
price of a given stock on the ith day.
On each day, you may decide to buy and/or sell the stock.
You can only hold at most one share of the stock at any
time. However, you can buy it then immediately sell it on
the same day.
Find and return the maximum profit you can achieve.
Practice
04. Best Time to Buy and Sell Stock
You are given an array prices where prices[i] is the price
of a given stock on the ith day.
You want to maximize your profit by choosing a single day
to buy one stock and choosing a different day in the
future to sell that stock.
Practice
06
05. Sort Colors
Given an array nums with n objects colored red, white, or
blue, sort them in-place so that objects of the same color
are adjacent, with the colors in the order red, white, and
blue.
We will use the integers 0, 1, and 2 to represent the color
red, white, and blue, respectively.
Practice
06. Find All Duplicates in an Array
Given an integer array nums of length n where all the
integers of nums are in the range [1, n] and each integer
appears once or twice, return an array of all the integers
that appears twice.
You must write an algorithm that runs in O(n) time and
uses only constant extra space.
Practice
07
07. 3Sum
Given an integer array nums, return all the triplets
[nums[i], nums[j], nums[k]] such that i != j, i != k, and j != k,
and nums[i] + nums[j] + nums[k] == 0.
Notice that the solution set must not contain duplicate
triplets.
Practice
08. 4Sum
Given an array nums of n integers, return an array of all
the unique quadruplets [nums[a], nums[b], nums[c],
nums[d]] such that:
0 <= a, b, c, d < n
a, b, c, and d are distinct.
nums[a] + nums[b] + nums[c] + nums[d] == target
You may return the answer in any order.
Practice
08
09. Search a 2D Matrix
You are given an m x n integer matrix matrix with the
following two properties:
Each row is sorted in non-decreasing order.
The first integer of each row is greater than the last
integer of the previous row.
Given an integer target, return true if target is in matrix or
false otherwise.
You must write a solution in O(log(m * n)) time complexity.
Practice
10. Longest Consecutive Sequence
Given an unsorted array of integers nums, return the
length of the longest consecutive elements sequence.
You must write an algorithm that runs in O(n) time.
Practice
09