Complete Python interview prep β DSA patterns, system design, coding challenges & solutions
- Arrays & Strings
- Linked Lists
- Stacks & Queues
- Trees & Graphs
- Hash Maps
- Heaps & Priority Queues
- Two Pointers
- Sliding Window
- Binary Search
- Dynamic Programming
- Backtracking
- Graph BFS/DFS
# Two Pointers Pattern
def two_sum_sorted(nums, target):
left, right = 0, len(nums) - 1
while left < right:
total = nums[left] + nums[right]
if total == target: return [left, right]
elif total < target: left += 1
else: right -= 1
return []
# Sliding Window Pattern
def max_subarray_sum(nums, k):
window_sum = sum(nums[:k])
max_sum = window_sum
for i in range(k, len(nums)):
window_sum += nums[i] - nums[i-k]
max_sum = max(max_sum, window_sum)
return max_sum
# Binary Search Pattern
def binary_search(nums, target):
left, right = 0, len(nums) - 1
while left <= right:
mid = (left + right) // 2
if nums[mid] == target: return mid
elif nums[mid] < target: left = mid + 1
else: right = mid - 1
return -1By Harsh Kumar β github.com/arya123224