
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Explore essential coding interview concepts in java, from pseudocode time-and-space notation to algorithm comparison, with practical exercises, automatic tests, and recruiter tips to boost interview success.
Explore prerequisites, learn to write pseudocode, analyze time and space with big notation, practice coding steps, tackle coding challenges, and preview bonus material.
* The topic preparing for your interview has been added to bonus material.
explore pseudocode as an artificial, language-agnostic tool to design algorithms, focusing on logic before coding, using capitalized keywords, indentation, and one-statement-per-line guidelines.
Clarify the problem, confirm inputs and outputs, and identify edge cases first. Compare brute force and hash-map strategies, and discuss time, space complexity, coding style, and debugging.
Implement a linear search to find value in an ordered array of integers, returning its zero-based position or indicating not found; iterate through the list until a match is found.
Write a function that counts vowels a i o u in a string, case-insensitive, by iterating characters, converting to lowercase, and incrementing a counter.
Implement a function that takes an ordered sequence of numbers and returns true if a duplicate exists, otherwise false, by comparing each element to its successor.
Learn to implement a Java leap year checker using the rules: divisible by 4, not by 100 unless by 400, with tests for 1900s, 2020, and negative years.
Develop a case-insensitive palindrome checker that returns true for palindromic strings and false otherwise, with empty input returning false, by reversing the input and comparing it to the original.
Implement a recursive method that returns the nth Fibonacci number for nonnegative inputs, with zero returning zero, and negative inputs returning minus one.
Validate input as a positive integer 1-9 and, if valid, generate a half pyramid using spaces and dashes with a string builder, returning result; otherwise, return out of bounds value.
Implement a Java method to produce a double half pyramid for a height between 1 and 9, using spaces and dashes while validating input and handling out-of-bounds cases.
Implement a bubble sort on an array of integers by swapping out-of-order pairs until no swaps occur, then return the sorted array as a string using a swapped flag.
Implement insertion sort to sort an array of integers and return the sorted array as a string, using a key and shifting larger elements one position at a time.
Explore binary search in an integer array using a divide-and-conquer approach with low, high, and middle indices, returning found position (e.g., 7 at index 6) or not found, via recursion.
Learn how to determine if two numbers in an array sum to a target using a hash map, by checking complements and returning true or false.
Calculate the largest product from any three integers in an array by testing all triples with nested loops, return zero for an empty input.
Solve the number of coins problem by writing a method that returns the minimum coins to make change with 1, 5, and 10, using a loop and conditional checks.
Implement a method that computes the maximum profit from buying once and selling once given an array of stock prices in chronological order, using a brute-force approach with nested loops.
Develop a method that merges overlapping intervals from an unsorted list into a new list. Use the Interval class, with getters and toString, and an ArrayList to collect merged intervals.
Implement a method called is balanced to determine if circle, square, and squiggly brackets are properly opened and closed using a stack, returning true or false.
Develop a Java solution to the ransom note problem by comparing word frequencies from newspaper and note, ensuring case sensitivity and using whole words with a frequency map.
Write a method that moves all occurrences of a target number to the end by partitioning the array into non-target and target lists, then merging them to return the result.
Learn to generate all permutations of an array list of integers using recursion or index swapping, remove duplicates, and implement a helper function plus a duplicates removal step.
Implement a power function for x and y that halves y with floor, returning 1 when y <= 0 and squaring or multiplying by x based on y mod 2.
Implement a method that computes the length of the longest common subsequence for two sequences and use a bottom-up dynamic programming approach with nested loops to return the maximum count.
Implement a method that takes a matrix of integers and returns its elements in a clockwise spiral using start and end indices for rows and columns.
Apply cadence algorithm to find the maximum contiguous sum, using dynamic programming and a step-by-step example that updates the current and maximum sums.
Sort the input array, loop through it, and use a left and right pointer approach via a helper to find all unique triplets that sum to zero, avoiding duplicates.
Count islands in a matrix of ones and zeros using flood fill to group connected ones. Traverse the grid, explore four-direction neighbors, and increment per island with a stack.
Learn to compute the length of the longest common subsequence for two sequences. Explore how subsequences preserve relative order, not contiguity, using a bottom-up matrix and example cases.
Explore counting palindromic substrings in a string, considering case sensitivity and single-character palindromes, using a dynamic programming 2d matrix to track substrings and total counts.
Determine the maximum number of gates needed at an airport by converting military time strings to integers, correlating arrivals with departures, and handling overlaps with nested checks.
Sort the array in ascending order, then brute force four indices to form unique quadruplets that sum to four, using a hash and ArrayList to avoid duplicates.
Sort an array of integers using the heap sort algorithm, applying heapify to maintain a max-heap and swap root with child to produce a sorted array, handling duplicates.
Solve a crossword puzzle by searching a two-dimensional character matrix for a case-insensitive target word in eight directions, validating start points and matching all characters.
Calculate the minimum number of gates needed at an airport by modeling landing and takeoff times, wait times, initial planes, and gate availability.
Are you ready to take the next big step? This course contains all of the necessary information to help you pass your coding interviews!
You will first learn about the foundational ideas that are increasingly common in interviews conducted by software development companies, including industry giants like Facebook and Google.
By going through our training on pseudo-code, time and space notation, and many other topics, you will gain a better understanding of how algorithms work, how we compare them, and what is expected of you in the interview. You will be able to gain a thorough understanding of how to approach coding challenges and perform above the expectations of your interviewer by testing your newly acquired knowledge with our meticulously crafted practical exercises.
Each of the practical exercises is accompanied by an instructional video that explains how to approach the challenge as well as automatic tests for your submission. We advise completing all of the challenges, from the simple to the difficult ones, to get the most out of the course material. We anticipate that you will be able to solve our trickiest problems!
We also included bonus content to help you land your new dream job. This information will help you prepare for an interview, speak with recruiters, and present yourself in the best light possible.
We believe you can completely transform your career with the assistance of this comprehensive guide.
Let us get started!