Advanced Coding

πŸ’» Arrays & Hashing (Coding)

Day 2 | ⏱️ Part of 3.5-Hour Coding Block | TCS Interview Prep


πŸ“Œ Subtopics

Arrays

  • Subarrays: Contiguous subarrays, max subarray sum (Kadane’s algorithm)
  • Sliding Window: Fixed-size and variable-size window problems
  • Two Pointers: Sorted array problems, pair sum, container with most water

Hashing

  • Hash Maps: Key-value storage, O(1) lookups
  • Frequency Tables: Counting occurrences of elements

🌐 Learning Resources

ResourceLink
GFG β€” Arraysgeeksforgeeks.org
GFG β€” Sliding Windowgeeksforgeeks.org
GFG β€” Two Pointersgeeksforgeeks.org
GFG β€” Hashinggeeksforgeeks.org
NeetCode β€” Arrays & Hashingneetcode.io
LeetCode β€” Array Problemsleetcode.com
TakeUForward β€” Arrays Playlisttakeuforward.org

βœ… Must-Practice Problems (LeetCode)

ProblemDifficultyLink
Two SumEasyleetcode.com/problems/two-sum
Best Time to Buy & Sell StockEasyleetcode.com/problems/best-time-to-buy-and-sell-stock
Maximum Subarray (Kadane’s)Mediumleetcode.com/problems/maximum-subarray
Contains DuplicateEasyleetcode.com/problems/contains-duplicate
Longest Substring Without RepeatingMediumleetcode.com/problems/longest-substring-without-repeating-characters
Subarray Sum Equals KMediumleetcode.com/problems/subarray-sum-equals-k
Group AnagramsMediumleetcode.com/problems/group-anagrams

πŸ“ Key Patterns

# Two Sum using HashMap
def two_sum(nums, target):
    seen = {}
    for i, num in enumerate(nums):
        complement = target - num
        if complement in seen:
            return [seen[complement], i]
        seen[num] = i

# Sliding Window Template
def sliding_window(arr, k):
    window_sum = sum(arr[:k])
    max_sum = window_sum
    for i in range(k, len(arr)):
        window_sum += arr[i] - arr[i-k]
        max_sum = max(max_sum, window_sum)
    return max_sum

# Kadane's Algorithm
def max_subarray(nums):
    curr_max = global_max = nums[0]
    for num in nums[1:]:
        curr_max = max(num, curr_max + num)
        global_max = max(global_max, curr_max)
    return global_max