Drills Catalog
Explain using the following format: What When Where How to apply Examples Diagrams
Criteria:
- Interview questions asked by companies
- In the Blind 75
- Or in the 150 must do questions
Refer Accumulate Coding Construct
/ ""
- Calculate Average
- Calculate Median
- Prefix Sum (AKA: Cumulative Sum, Addition Accumulator, Running Sum of 1d Array)
- Suffix Sum
- Accumulate Maximum
- Accumulate Count
- Running Average
- Two Pointers
- Range Caching
- Line Sweep
- Precomputation
- Analyze Constraints
- Catalan Number
- Backtracking Sequence
- Visualizing Backtracking
- Backtracking with Dynamic Programming
- Convert 1D index to 2D
- Frequency Counting
- Range Sum
- Range Addition
- Range Product
- Recurrence Relation
- Optimal Substructure
- Accumulate Product
- Abstract Representation
- Problem Decomposition
- Maximizing Difference Between Two Ordered Elements
- Bit Masking
- Fold and Find
- Prefix Substring
- Pairwise Comparison
- Adjacent Element Comparison
- Rule of product (Used in Count Increasing Quadruplets)
- Translating Manual Process
- Cycle Detection
- Search Space Reduction
- Monotonic Decreasing Queue
- Monotonic Decreasing Stack
- Monotonic Stack
- Cyclic Sort
- Three Pointers
- Cyclic Replacement
- Prefix Product
- Suffix Product
- Inplace Modification
- Single or Double Linear Scan
- Counting Sort
- Solve an Equation Problem: Water Bottles
- Frequency Sort Problem: Sort Array by Increasing Frequency
- Cyclic List
- Circular Increment
- Pigeonhole Principle
- Modular increment
- Bucket Count
- Increasing Triplet Subsequence
- Array Transformation
- Subsequence
- Acyclic List
- Adjacency List
- Adjacency Matrix
- List Flattening
- List Unflattening
- Cartesian Coordinate System Scan Conversion
- Cartesian Product
- Circular Linked List
- Comparator Function
- CompareToAll Function
- CompareToMax Function
- Confidence Interval in Statistics
- Cube Counting
- Flattening Doubly Linked List
- Endianness
- Dynamic Array
- Gaussian Distribution
- Horner’s Rule
- Little Endian
- Map Reduce
- Monte Carlo Method
- Multi Key Sort Problem
- Non Parametric Statistics
- Normal Distribution
- Uniform Distribution
- Variance
- Visual Model of the Problem
- Visualization
- Extract Digits
- 0-1 Integer Programming
- Weighted Bipartite Matching
- Weight-Balanced Tree
- Weighted Matroid
- Weighted Median
- Weighted Set-Covering Problem
- Weighted-Union Heuristic
- Weighted Vertex Cover
- Weak Duality
- Walk of a Tree
- Work-Stealing Scheduling Algorithm
- White-Path Theorem
- White Vertex
- Weight Function for a Graph
- Weight Function in a Weighted Matroid
- Compositeness of a Number
- Convolution of Vector
- Cross Product of Vector
- Orthonormal Vector
- Verification of Spanning Trees
- Vertex Articulation Point
- Vertex Set
- Capacity of a Vertex
- Bezout’s Identity
- Computing a Minimum Spanning Tree in Undirected Graph
- Loop Invariant
- Short Circuiting
- Sentinel
- Recursion Tree
- Inversion of Array
- Monotonically Increasing Function
- Monotonically Decreasing Function
- Strictly Increasing
- Strictly Decreasing
- Floor of x
- Ceiling of x
- Modulo Operator
- Modular Arithmetic
- Problem Transformation
- Generating Function
- Function Generating Problem
- Heapsort
- Stack Depth
- Decision-Tree Model
- Stable Sort
- Bucket Sort
- Constraints
- 1-indexed Array
- Radix Sort
- Radix Tree
- Bit Vector
- Young Tableaus
- Random Sampling
- Multiset
- Reservoir Sampling
- Order Statistic Tree
- Median-of-3 Method
- Compare Exchange Operation
- Column-Major Order
- ith Order Statistic
- First Order Statistic
- nth Order Statistic
- Lower Median
- Upper Median
- Selection Problem
- Weighted Lower Median
- Unrolling the Recursion
- Lexicographically Less Than in Strings
- Taylor Series
- Taylor Expansion
- AVL Tree
- Treap
- Skip List
- Splay Tree
- Augment a Data Structure
- Prescriptive Design Method
- Interval Tree
- Point of Maximum Overlap
- Josephus Problem
- Partition Function
- Memoization
- Optimal Binary Search Tree
- Longest Simple Path in a Directed Acyclic Graph
- An activity-selection Problem
- Disjoint-Set Data Structure
- Union by Rank
- Path Compression
- Two Pass Method
- Euler Tour
- Reachability
- Single-Source Shortest Path
- Single-Destination Shortest Path
- Pop Count
- Most Significant Bit
- Least Significant Bit
- Last Set Bit
- Single-Pair Shortest-Path Problem
- All-Pairs Shortest-Paths Problem
- Path-Relaxation Property
- Integer Linear Program
- Linear Programming
- Vertex Cover Problem
- Weighted Vertex Cover Problem
- Objective Function
- Feasibility Problem
- Constraints at Five Levels
- Using Constraints to Solve Algorithmic Problems
- Constraints and Time Complexity
- Currency Arbitrage
- Bitonic Sequence
- Transitive Closure of a Directed Graph
- Working Backwards
- Matrix-Chain Multiplication
- Subset Range
- Recognizing Cues in Problem Statement to Categorize Problem Classes
- Problem Classification
- Code Blueprints
- Conceptual Model
- Conceptual to Computational Models
- Constraint Satisfaction Problems
- Forward and Backward Passes
- GCD
- Range Check
- Cue Direction
- Numerical Stability
- Numerically Unstable
- Linear Equation
- Simplex Algorithm
- Optimal Merge Pattern
- Wishful Thinking and Make it Easier
- Cartesian Tree
- B Tree
- KD Tree
- Cubesort
- Implement an ArrayList from scratch
- Implement a HashTable with simple Hashing functions
- Reverse Linked List
- Implement a Stack using Array
- Implement Queue using Array
- Implement a Graph using Adjacency List
- BFS
- Implement Trie
- Euclid’s Algorithm
- Incremental Method
- Prune and Search Method
- Visual Model of a Problem
- Visual Model of the Problem
- Using Models
- Decrease and Conquer
- Binomial Coefficient (Used in Unique Paths)
- Extremal Principle
- Hamiltonian Cycle
- Decision Problem
- Reduction Algorithm
- Hamiltonian Path
- Reducibility
- Set Partition Problem (Partition Equal Subset Sum)
- Longest Simple Cycle Problem
- Graph Coloring
- Approximation Algorithm
- Branch and Bound
- Bin Packing (Minimum Number of Work Sessions to Finish the Tasks)
- Maximum Matching
- Avoiding the Hammer Syndrome
- Pre Processing
- Abstract Model
- Abstraction at Five Levels
- Active Engagement in Problem Solving
- Active Learning Strategies
- Activity-Selection Problem
- Analysis Phase
- Associative Relationship
- Binary Search
- Binary Search
- Bottom Up DP vs Top Down DP
- Pattern Bias
- Bucket Sort Variant
- Combinatorial Optimization
- Unveiling the Power of Visualization in Problem-Solving
- Cross Comparison
- Binary Tree Inorder Traversal
- Binary Tree Postorder Traversal
- Binary Tree Preorder Traversal
- Check Duplicates
- Counting Inversion
- Rejection Sampling
- Logarithm
- Rolling Hash
- Transitive Closure
- External Sorting
- Backtracking with Dynamic Programming
- In Place Sorting
- Decision Tree and Recursion
- Bijection Relationship
- Induction Principle
- Inductive and Deductive Reasoning
- Invariant and Loop Invariant
- Eulerian Path
- Transitive Relationship
- Upper Median
- Simplification
- Linear Inequality
- Domain Reduction
- Forward Checking
- Deduce New Constraints
- Structure of Code
- Problem Space Reduction
- Problem Space
- Problem Reduction
- Problem Structure Recognition
- Solution Structure Recognition
- Data Transformation
- Polynomial Time
- Optimization Problems
- Optimal Binary Tree
- Modeling and Simulation
- Mental Model
- Mental Model in Programming
- Computer Science - The Mechanization of Abstraction
- Max-Priority Queue
- Modeling Relationships and Hierarchies
- Modeling Sequential Data
- Model Categorical Data
- Modeling Quantitative Relationships
- Modeling Randomness and Uncertainty
- Building a Mathematical Model
- A* algorithm
- Accumulate Absolute Differences
- Accumulate Power
- Accumulate Division
- Accumulate Concatenation
- Accumulate Differences
- Accumulate XOR
- Accumulate Minimum
- Accumulate Maximum and Minimum
- Bloom’s Taxonomy in Computer Science
- Traverse Forward and Backward
- Shift Left and Rotate Left in an Array
- Copying Elements from One Array to Another
- Rearrange an Array
- Inplace Reverse
- Reverse an Array using Auxiliary Array
- Difference of Element and Index
- Difference Check
- Find Missing Element
- Find Missing Elements
- Find Missing Elements - Unsorted
- Bitset Strategy to Find Missing Elements
- Keep Track of Last Duplicate in a Variable
- Check if the next element is the same in the array
- Ukkonen’s Algorithm
- Finding Duplicates in a Sorted Array
- Counting duplicates in sorted array
- Mark duplicate elements by replacing it with -1
- Skip processing elements marked with -1
- Finding Duplicates in an Unsorted Array Using Counter and Adjacent Element Comparison
- Find a Pair with Sum K by Traversing Sorted Array Forwards and Backwards
- Find a Pair with Sum K in an Unsorted Array Using Hashtable
- Find Min and Max in a Single Scan Using Comparison and Assignment
- Thinking and Reasoning
- Insight and Expertise in Problem Solving
- Inductive Reasoning
- Deductive Reasoning
- Fibonacci Sequence
- Factorial
- Modulo
- Exponent
- Recursive Sum
- Even Number
- Powers of Two
- Add Adjacent Elements
- Sum Digits
- Square Root
- Add a Sequence of Numbers
- Multiplication
- Division
- Divisible
- Palindromic Substrings
- Repeating Elements
- Unique Characters
- Identical Values
- Duplicate Elements
- Remove White Spaces
- Remove Duplicates
- Find rotation point
- Tree Size
- Mirror Tree
- String Segmentation
- Finite Arithmetic Progression
- Choice of Datastructure for N Queens Problem
- Causal Reasoning
Partitioning Schemes Quickselect
Refer the book and complete these: Principle of Intimate Engagement Externalize the Information
Refer the appendix of CLRS and create articles for the basic math.
Create content using this template for (domain is )
Run all autoresponder items through GPT
Create content for Ukkonen’s algorithm that follows the given structure: describe the concept of
Example code in Java, C++ and Python
Create content for that follows the given structure: describe the concept of
Example code in Java, C++ and Python
Create content for that follows the given structure: describe the concept of
Example code in Java, C++ and Python
Create content for that follows the given structure: describe the concept of
Example code in Java, C++ and Python
Create content for that follows the given structure: describe the concept of
Example code in Java, C++ and Python
Create content for that follows the given structure: describe the concept of
Example code in Java, C++ and Python
Create content for that follows the given structure: describe the concept of
Example code in Java, C++ and Python
Create content for that follows the given structure: describe the concept of
Example code in Java, C++ and Python
Create a table, showing the input and what happens in each iteration for each of the element in the array for
Can you illustrate by means of some visual to make the concept clear for ?
Split : How to Think Recursively
Write the merge sort algorithm Write the quicksort algorithm Print binary tree using DFS (in-order, preorder and post order — all three of them) and BFS. Memorize time & space complexities for common algorithms.
Resources
https://www.bigocheatsheet.com/ https://leetcode.com/discuss/general-discussion/494279/comprehensive-data-structure-and-algorithm-study-guide https://ocw.mit.edu/courses/6-046j-introduction-to-algorithms-sma-5503-fall-2005/video_galleries/video-lectures/ https://www.people.vcu.edu/~rhammack/BookOfProof/ https://www.google.com/books/edition/Discrete_Mathematics_with_Applications/_341EAAAQBAJ?hl=en&gbpv=1&printsec=frontcover https://www.google.com/books/edition/How_to_Think_about_Analysis/n0tuBAAAQBAJ?hl=en&gbpv=1&printsec=frontcover https://www.google.com/books/edition/Linear_Algebra/BJNoAgAAQBAJ?hl=en&gbpv=1&printsec=frontcover https://www.youtube.com/@WilliamFiset-videos/videos
Identifying Problem Isomorphism
Tabular Representation
Tasks
- Review the Google docs notes and extract core concepts.
- Rubio Chanchez diagrams etc
Is there a term in computer science called ?