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