Skip to main content

Basic Programming Concepts

Essential techniques and patterns that appear frequently in algorithmic problems.

Two Pointers technique

  • Purpose: Efficiently solve problems involving arrays or strings
  • Types: Opposite direction pointers, same direction pointers
  • Applications: Finding pairs, removing duplicates, palindrome checking

Sliding Window

  • Purpose: Efficiently process contiguous subarrays or substrings
  • Types: Fixed size window, variable size window
  • Applications: Maximum/minimum in window, substring problems

Prefix Sums

  • Purpose: Precompute cumulative sums for range queries
  • Applications: Range sum queries, subarray problems
  • Time Complexity: O(1) for range queries after O(n) preprocessing

String manipulation basics

  • Common Operations: Concatenation, substring extraction, character counting
  • Pattern Matching: Basic string searching and comparison
  • Character Encoding: Understanding ASCII, Unicode, and character sets

Bit manipulation fundamentals

  • Basic Operations: AND (&), OR (|), XOR (^), NOT (~)
  • Bit Shifting: Left shift (<<), right shift (>>)
  • Applications: Setting/clearing bits, checking bit status, bit counting