
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Explore 11 essential coding interview questions and their varying difficulty, with problem-solving techniques, video solutions, and exercises in Python and Java across three course parts.
Explore what a typical coding interview looks like, from whiteboard problems to phone interviews. Learn to clarify requirements, choose a suitable language, and apply time-efficient problem-solving techniques.
Think on paper to frame problems conceptually before coding, then translate solutions into data structures like a hash table to find pairs that multiply to 20.
Think about the big picture first, then the details, and use a two-number product idea to guide finding three numbers that multiply to 20 rather than brute-forcing all triplets.
Master communicating your thinking in coding interviews, thinking conceptually first, and asking clarifying questions, as you tackle essential topics like arrays, strings, 2d arrays, linked lists, and trees.
Implement a function that returns the most frequent item in an array in O(n) time, assuming a unique winner, with practice in Python or Java.
Track the most frequent item in an array using a dictionary to count occurrences, update the max item, and return the result.
Find the intersection of two sorted arrays in ascending order and return their common elements, such as 1, 4, and 9, using an efficient O(max(n, m)) approach.
Solve common elements in two sorted arrays in linear time by using two pointers and a resizable result list, returning the common elements (possibly empty) as the final output.
Learn to implement isRotation to determine if two arrays without duplicates are rotations of each other by checking identical elements in order, starting at different indices, with a linear-time solution.
Discover how to determine if one array is a rotation of another by checking lengths, locating a matching item in B, and validating all elements in order in linear time.
Implement a function that takes a string and returns the first non-repeating character, or null if none exist, with an O(n) time solution.
Learn a linear time solution to the non-repeating character problem by counting characters with a hash map and returning the first with count one, or null if none.
Determine if two strings are one edit away by one change, delete, or add operation. Implement a function returning true or false in big O(n) time for similar-length strings.
Analyze the one edit away strings problem by length-based case analysis, then use a single pass to detect insertion, deletion, or a single change, with O(n) time.
Explore implementing the one away strings solution in pseudocode, writing functions to check one edit apart for same-length strings and for differing lengths, using a count diff approach.
Implement the Minesweeper function that takes bombs, rows, and columns. Return a two-dimensional array with -1 for bombs and counts of surrounding bombs in each cell.
Explain a minesweeper solution: initialize a 2d field, place bombs as -1, increment surrounding cells (nine neighbors) with bounds checks, and return the completed field via a minesweeper function.
Explore how to reveal connected zero cells in Minesweeper when a zero cell is clicked, expanding to adjacent zeros and returning the updated field with minus two.
Explore a breadth-first search solution for revealing connected zero cells in Minesweeper, using a queue to mark revealed cells (-2) and compare BFS to DFS for time and space complexity.
Implement a minesweeper click function that reveals zeros by turning them to minus two, enqueues positions, and iterates through surrounding cells within bounds to update the field.
Learn to rotate a square two-dimensional array by 90 degrees clockwise, first using a new array, then in place, as rows map to columns and the array is returned.
Explore rotating a 2d array by 90 degrees using an out-of-place solution, deriving new coordinates (new I = J, new J = N-1−I), and copying values into a new matrix.
Explore in-place 2d array rotation by 90 degrees, using a temporary region approach, handling even and odd sizes with floor and ceiling indices, and preserving center values.
Learn to implement an in-place rotation of a 2d array using a rotate sub function, a four-item temp buffer, and modular index arithmetic to cycle four values at each position.
Find the n-th element from the end of a linked list by traversing from the head, handling null inputs, and returning the target node; examples in Python and Java.
Use a two-pointer approach to find the nth node from the end of a linked list, with left and right pointers and null-head edge-case checks.
Differentiate binary trees from binary search trees, and apply the BST rule where each node's left values are smaller and right values are larger. Solve with a Java code snippet.
Demonstrates why simple range checks don't prove a binary search tree and introduces a solution using lower and upper limits to validate each node, illustrated with pseudocode.
Explore a pseudocode solution to determine whether a binary search tree is valid using node bounds, including lower and upper limits, and recursive checks of left and right subtrees.
Learn to find the lowest common ancestor in a binary tree by locating the shared ancestor of two values, including the node itself, with null when a value is missing.
Learn a simple, efficient approach to the lowest common ancestor by finding paths to two nodes, comparing them, and returning the last common node with linear time and logarithmic space.
Recursively build the path to x from the root using left and right subtrees. Compare the resulting paths to find the lowest common ancestor for j and k.
Master 11 essential coding interview questions with practical practice, and use Cracking the Coding Interview and leetcode.com for further prep; visit my website w-w-w ogio to request future videos.
As you prepare for your next coding interview, have you ever thought:
If so, this course is for you!
In this course:
This course is intended for intermediate to advanced learners who are preparing for their software engineer programming interviews.
So, I’m going to assume that you’re already familiar with concepts such as:
If you think you’re ready for this course, watch the preview videos and see if you can solve those problems!