Skip to main content
grasp.study
About
Explore
Pricing
Log in
Try it for free
Back to course
👋
Welcome to a Grasp lesson
Create a free account
to keep studying and create your own study path.
Java DSA
·
Module 1
Complexity Analysis and Core Patterns
1
Understanding Asymptotic Notations: Big-O, Big-Omega, and Big-Theta
Explain Big-O, Big-Omega, and Big-Theta notations for describing algorithm performance.
2
Analyzing Iterative Algorithm Complexity
Determine the time and space complexity of iterative algorithms, including those with nested loops.
3
Understanding Big O Notation and Common Complexities
Compare common complexity classes (O(1), O(log n), O(n), O(n log n), O(n²), O(2^n)) with concrete examples.
4
Amortized Analysis: Dynamic Array Resizing
Apply amortized analysis to explain the time complexity of operations like dynamic array resizing.
5
Two-Pointer Technique for Sorted Arrays and Strings
Apply the two-pointer technique to solve problems on sorted arrays and strings (e.g., two-sum, valid palindrome).
6
Sliding Window for Optimal Subarrays
Apply the sliding window technique to find optimal subarrays or substrings (e.g., max sum subarray of size k).
7
Prefix Sums for O(1) Range Sum Queries
Use prefix sums to answer range sum queries in O(1) time after O(n) preprocessing.
8
In-Place Array Manipulation Techniques
Solve in-place array manipulation problems (e.g., rotate an array, move zeroes).
Next module isn't ready yet,
Back to course
Previous module
Next module