# Algorithms

- Amortized time complexity
- Big O notation explained
- Dynamic programming vs memoization vs tabulation
- Generating a random value with a custom distribution
- Generating competition rankings
- Hash tables explained
- Programming.Guide
- Java References vs C++ Pointers and References
- Why large prime numbers are used in hash tables
- Random Generators: What is a seed?
- Generating a random point within a circle (uniformly)
- Shallow vs Deep Copy (with examples)
- Sliding Window Algorithm with Example
- Time complexity explained
- What makes a good loop invariant?
- Worst-case time complexity