Skip to main content
Back to course
Log in
Get started
Someone wanted to learn this too, so Grasp built them a personal learning path.
Create your own
Software Development Engineering
·
Module 1
Interview Reasoning and Java Problem-Solving Toolkit
1
Inferring Time Complexity from Input Constraints
Infer an appropriate target time complexity from a problem’s input constraints.
Infer an appropriate target time complexity from a problem’s input constraints.
2
Choosing Java Data Structures by Operation Costs
Select a Java data structure by matching its operation costs to the algorithm’s needs.
Select a Java data structure by matching its operation costs to the algorithm’s needs.
3
Assessing Recursion Depth and Choosing Iterative Java Implementations
Estimate recursion depth and auxiliary stack usage, and choose an iterative Java implementation when recursion is unsafe.
Estimate recursion depth and auxiliary stack usage, and choose an iterative Java implementation when recursion is unsafe.
4
Bounding Total Complexity via Monotonic Pointer Movement
Compute the total complexity of a monotonic-pointer loop by bounding each pointer’s movement.
Compute the total complexity of a monotonic-pointer loop by bounding each pointer’s movement.
5
Overflow-Safe Java Comparators for Arrays, Collections, and Priority Queues
Write overflow-safe Java comparators for arrays, collections, and priority queues.
Write overflow-safe Java comparators for arrays, collections, and priority queues.
6
Identifying Correctness Invariants in Algorithms
State the invariant that explains why an iterative or recursive algorithm is correct.
State the invariant that explains why an iterative or recursive algorithm is correct.
7
Design Boundary and Adversarial Test Cases First
Construct boundary and adversarial test cases before submitting an implementation.
Construct boundary and adversarial test cases before submitting an implementation.
Next module isn't ready yet,
Back to course
Previous module
Next module