← Back to Tutorials
1. Arrays (Days 1—14)
Two Sum
# Brute Force O(n²)
def twoSum(nums, target):
for i in range(len(nums)):
for j in range(i+1, len(nums)):
if nums[i] + nums[j] == target:
return [i, j]
# Hash Map O(n)
def twoSum(nums, target):
seen = {}
for i, val in enumerate(nums):
diff = target - val
if diff in seen:
return [seen[diff], i]
seen[val] = i
Best Time to Buy & Sell Stock
def maxProfit(prices):
min_price = float('inf')
max_profit = 0
for price in prices:
min_price = min(min_price, price)
max_profit = max(max_profit, price - min_price)
return max_profit
Majority Element
// C++ — Boyer-Moore Voting O(n)
int majorityElement(vector<int>& nums) {
int count = 0, candidate = 0;
for (int num : nums) {
if (count == 0) candidate = num;
count += (num == candidate) ? 1 : -1;
}
return candidate;
}
More Problems
Problem Approach Complexity
Move Zeroes Two pointers, swap non-zero left O(n), O(1)
Squares of Sorted Array Two pointers from ends O(n), O(n)
Merge Sorted Array Merge from end O(m+n), O(1)
Pivot Index Prefix sum O(n), O(1)
Running Sum In-place prefix O(n), O(1)
✏️ Exercise: Solve Two Sum in Python using a hash map, then implement the O(1) space version of Move Zeroes. Aim for <15 min each.
← Back to Index Back to Index Next: Strings →