Coding interviews can be tough. Whiteboard freeze, tricky algorithms, data structure trivia...The best way to prepare is to practice. So we've assembled some of the most common C# coding interview questions.
You'll get a step-by-step walkthrough for each question. If you get stuck, we won't leave you hanging. We'll give you just enough of a hint to get back on track. And along the way, you'll learn the underlying patterns behind solving these tricky algorithmic coding interview questions.
Computer the nth Fibonacci number. Careful--the recursion can quickly spin out of control! keep reading »
Check whether a singly linked list has a cycle, using only O(1) additional space. A classic coding interview question, with a step-by-step solution. keep reading »
Count the number of ways to make an amount of money from a set of coin denominations (the number-of-ways version of coin change). Step-by-step solution. keep reading »
Implement a queue with two stacks. Assume you already have a stack implementation. keep reading »
Find the area of overlap between two rectangles. In the name of love. keep reading »
Write code to continually track the max, min, mean, and mode as new numbers are inserted into a tracker class. keep reading »
Write a function to see if a binary tree is 'superbalanced'--a new tree property we just made up. keep reading »
Check whether a binary tree is a valid binary search tree. Avoid the common gotcha and solve it in O(n) time. A classic interview question, step by step. keep reading »
Find the second largest element in a binary search tree. keep reading »
I'm making a new search engine called MillionGazillion(tm), and I need help figuring out what data structures to use. keep reading »
Given an array of numbers in sorted order, how quickly could we check if a given number is present in the array? keep reading »
Find the rotation point (the smallest item) in a rotated sorted array in O(lg n) time. A classic coding interview problem, with a step-by-step solution. keep reading »
Given a flight length and a list of movie lengths, find two movies that add up to exactly the flight length: a real-world two sum problem, in O(n) time. keep reading »
Maximize the value of cakes that fit in a bag when you can take unlimited copies of each: the unbounded knapsack problem, solved step by step. keep reading »
Implement a stack with a get_max method that returns the largest item in O(1) time: the max stack problem, with a step-by-step solution. keep reading »
Every ID appears twice except one. Find the unique one in O(n) time and O(1) space: the single number problem, with a step-by-step solution. keep reading »
Write a function to delete a node from a linked list. Turns out you can do it in constant time! keep reading »
Reverse a singly linked list in place and return the new head, in O(n) time and O(1) space. A classic interview question, solved step by step. keep reading »
Find the kth to last node in a singly linked list in O(n) time and O(1) space, a cousin of removing the nth node from the end. Step-by-step solution. keep reading »
Write a function to reverse a string in place. keep reading »
Write a function to reverse the word order of a string, in place. It's to decipher a supersecret message and head off a heist. keep reading »
Write a function that finds the corresponding closing parenthesis given the position of an opening parenthesis in a string. keep reading »
Check whether a string's brackets, braces, and parentheses are properly nested and closed: the valid parentheses problem, solved step by step in O(n) time. keep reading »
Check if any permutation of an input string is a palindrome. keep reading »
Write a recursive function of generating all permutations of an input string. keep reading »
Efficiently sort numbers in an array, where each number is below a certain maximum. keep reading »
Find the repeat number in an array of numbers. Optimize for runtime. keep reading »
You're building a word cloud. Write a function to figure out how many times each word appears so we know how big to make each word in the cloud. keep reading »
Do an in-place shuffle on an array of numbers. It's trickier than you might think! keep reading »
Write a function to tell us if cafe customer orders are served in the same order they're paid for. keep reading »
Given a 7-sided die, make a 5-sided die. keep reading »
Given a 5-sided die, make a 7-sided die. keep reading »
A building has 100 floors. Figure out the highest floor an egg can be dropped from without breaking. keep reading »
Figure out which number is repeated. But here's the catch: optimize for space. keep reading »
Figure out which number is repeated. But here's the catch: do it in linear time and constant space! keep reading »
Your friend copied a bunch of your files and put them in random places around your hard drive. Write a function to undo the damage. keep reading »
Given yesterday's stock prices, find the max profit from one buy and one sell. A classic interview problem, solved in O(n) time and O(1) space. keep reading »
Given an array of integers, return an array where each item is the product of all the others, without division, in O(n) time. Step-by-step solution. keep reading »
Find the highest possible product that you can get by multiplying any 3 numbers from an input array. keep reading »
Merge overlapping meeting time ranges into condensed blocks: the classic merge intervals problem, with a step-by-step O(n lg n) solution. keep reading »
Design a ticket sales site like Ticketmaster: scope the requirements, model events, seats, and orders, and handle traffic spikes when tickets go on sale. keep reading »