
Explore data structures and algorithms with time complexity insights in a C sharp interview prep course, previewing topics from fizz buzz to matrices, trees, graphs, and dynamic programming.
Execute fizz buzz from one to one hundred, printing fizz for multiples of three, buzz for multiples of five, and fizz buzz for fifteen, noting edge cases and time complexity.
Explore time complexity in C#, from factorial and exponential to quadratic, linear, logarithmic, and constant time, described by big O notation with examples like permutations and binary search.
Learn to reverse a string word by word in C Sharp by splitting the input into words, iterating backwards, and concatenating with spaces, and understand the linear time complexity.
Master left rotating an array by k steps in c#, including right rotation, using modulo and gcd-based cycles for rotation with a 7-element example.
Explore solving the isomorphic strings problem by mapping characters from one string to another with arrays, and handle the edge case of different lengths.
Learn how to find the kth smallest element in an array using quicksort and partitioning, with a pivot and left and right recursion, plus edge-case handling.
Set a 2d matrix's rows and columns to one wherever a one appears, in place, using first-row and first-column flags and two passes, yielding O(mn) time and constant space.
Solve the spiral matrix problem by printing a two d matrix in spiral order with an iterative approach that removes layers and then inner layers, achieving O(rows × columns) time.
Count the number of islands in a 2d grid of ones (land) and zeros (water) using depth-first search, marking visited cells and counting each unvisited land cluster as one island.
Learn to implement a stack using an array with push, pop, peak and isEmpty operations, handle stack overflow and underflow, and compare array-based stacks to linked lists for constant-time operations.
Add two numbers represented by reversed linked lists and return the sum as a new reversed list, illustrating node and linked list structures, digit-wise addition, carry handling, and time complexity.
Reverse a linked list by updating next pointers and returning the head. Explore recursion with a previous node, test with a print helper, and note linear time with constant space.
Perform in-order traversal on a binary tree by traversing the left subtree, visiting the root, then the right subtree, using recursion; understand its linear time and recursive space complexity.
Learn how to implement preorder traversal on a binary tree by visiting root before left and right subtrees, using a recursive approach, a helper node class, and a wrapper method.
Master post order traversal on a binary tree using a node and binary tree class, recursively visiting left, right, then root, with a wrapper method and console output.
Develop a recursive solution to binary tree maximum path sum by building a node and tree classes to evaluate left, right, and node paths; 2-3-4 yields 9, time complexity linear.
Learn to solve the largest connected component in a grid using 2d arrays and visited tracking, via depth-first or breadth-first search, counting component sizes for diagonal, horizontal, or vertical connections.
Explore the bubble sort algorithm as it sorts an array by repeatedly swapping adjacent elements to ascending order, and analyze its time complexity—best, worst, and average cases—with constant space.
Practice the selection sort algorithm on an array by repeatedly finding the minimum in the unsorted subarray and swapping it to the front, achieving quadratic time with constant space.
Explore the insertion sort algorithm in a C# context, sorting an array by inserting each element into its proper position to achieve ascending order, as seen in interview questions.
this lecture explains the quicksort algorithm, a divide-and-conquer method that sorts an array in ascending order by using a pivot to partition and recursively sort left and right halves.
Learn the merge sort algorithm, using divide and conquer to split array into two halves, sort halves, and merge them with O(n log n) time and linear space.
Examine the time complexities of common sorting algorithms, including bubble sort, selection sort, insertion sort, quicksort, and merge sort, covering best, average, and worst cases.
Apply dynamic programming to solve the coin change problem by minimizing coins. Build a dynamic programming table using quarter, dime, nickel, and penny for 44 cents.
Explore the edit distance problem by computing the minimum operations to transform one string into another using insertion, removal, and replacement, implemented with a dynamic programming 2D table in C#.
Count distinct subsequences of T in S using a dynamic programming matrix. Handle edge cases when T is longer than S, and illustrate with the rabbit example.
Solve the maximum sum subarray problem by finding the largest contiguous sum in a one-dimensional array using dynamic programming, with code that updates the current and overall max.
Explore bitwise operators and shift operators in Java. Understand or, and, xor, complement, left and right shifts, and how binary representations manipulate integral types for bit-level updates and binary-tree queries.
Explore bit manipulation to solve the single number problem: use xor to cancel duplicates in an integer array, yielding the unique element in linear time.
Learn to count the number of one bits in an unsigned integer using bitwise operators and a lookup table, with shifts tallying the binary weight.
Learn to compute the sum of two integers without plus or minus using bitwise operators in C#. Use and, xor, and left shift to handle carry.
Reverse bits demonstrates using bitwise operators in C# to reverse a 32-bit unsigned integer, from 10 to 5, with left and right shifts.
Discover how to compute the bitwise and of all integers from X to Y using long integers and bitwise operators, delivering an efficient solution in C#.
Explore permutations where order matters by printing all rearrangements of a string using backtracking, recursion, and a swap-based approach, and compare with combinations while noting factorial time complexity.
Print all distinct permutations of a string with duplicates using a C Sharp solution that swaps characters only when duplicates are avoided and recurses to enumerate permutations.
Generate all possible letter combinations from a phone number using a digit-to-letter mapping, a foam board structure, and a BFS-inspired approach in C#.
Learn to generate all factor combinations of a number, excluding 1 and the number itself, using a recursive approach with a two dimensional list to store results.
Data Structures + Algorithms to Crack the Coding Interview
Only in The Data Structures, Algorithms and Time Complexity Guide, learn the best way to answer an interview question, look at the most commonly asked questions, and analyze time complexity of various algorithms.
Interview Question Solutions and Time Complexity
Learn through hands-on coding examples and learn to solve problems quickly.
Refresh your C# knowledge and solve new problems with the most common beginner interview questions asked by FANG companies.
Algorithms & Data Structures - Ultimate Coding Interview Prep
Learn the most commonly asked questions by the likes of Facebook, Google, Amazon and Spotify for beginners.
Preparing for the C# interview is hard. You need to understand not only concepts but also be able to articulate your thought process as you plan and execute a solution.
COURSE BREAKDOWN
Section 0: Introduction to Interview Questions
Course Overview
FizzBuzz: Print the numbers from 1 to 100 and for multiples of '3' print "Fizz" instead of the number and for the multiples of '5' print "Buzz".
Types of Time Complexity: Learn the types of time complexity in Big-O Notation in order of horrible to good.
Section 1: String/Array Interview Questions
01 Reverse Words in a String: Given an input string, reverse the string word by word.
02 Rotate Array: Rotate an array of n elements to the left by k steps.
03 Isomorphic Strings: Given two strings a and b, determine if they are isomorphic.
04 Kth Largest Element in an Array: Find the kth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth distinct element.
Section 2: Matrix Interview Questions
01 Set Matrix Zeroes: Given a 2D matrix, if an element is 0, set its entire row and column to 0. Do it in place.
02 Spiral Matrix: Given a 2D matrix, return all elements of the matrix in spiral order.
03 Number of Islands: Given a 2D grid map of 1s (land) and 0s (water), count the number of islands.
Section 3: Linked List Interview Questions
01 Implement a Stack Using an Array: Implement a stack using an array.
02 Add Two Numbers: You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.
03 Reverse a Linked List: Reverse a singly linked list.
Section 4: Tree Interview Questions
01 Inorder Traversal: Perform inorder traversal on a binary tree.
02 Preorder Traversal: Perform inorder traversal on a binary tree.
03 Postorder Traversal: Perform inorder traversal on a binary tree.
04 Binary Tree Maximum Path Sum: Given a binary tree, find the maximum path sum.
Section 5: Graph Interview Questions
01 Clone an Undirected Graph: Each node in the graph contains a label and a list of its neighbors.
Section 6: Sorting and Time Complexity
01 Bubble Sort Algorithm: Sort a list with bubble sort.
02 Selection Sort Algorithm: Sort a list with selection sort.
03 Insertion Sort Algorithm: Sort a list with insertion sort.
04 Quick Sort Algorithm: Sort a list with Quick Sort.
05 Merge Sort Algorithm: Sort a list with Merge Sort.
06 Time Complexity of Different Sorting Algorithms
Section 7 Dynamic Programming Interview Questions
01 Coin Change: You are given coins of different denominations and a total amount of money amount. Write a function to compute the fewest number of coins that you need to make up that amount.
02 Edit Distance: Find the edit distance between two strings.
03 Distinct Subsequences: Given a string S and a string T, count the number of distinct subsequences of T in S.
04 Maximum Sum Subarray: Find the sum of contiguous subarray within a one-dimensional array of numbers which has the largest sum
Section 8 Bit Manipulation Interview Questions
01 Bitwise and Shift Operators: Manipulate bits and shift bits to change values.
02 Single Number: Given an array of integers, every element appears twice except for one. Find that single one.
03 Sum of Two Integers: Calculate the sum of two integers a and b, but you are not allowed to use the operator + and -.
04 Number of 1 Bits: Take an unsigned integer and return the number of ’1' bits it has (also known as the Hamming weight.)
05 Reverse Bits: Reverse the bits of a given 32 bit unsigned integer.
06 Bitwise AND of a Range: Given two non-negative long integers, a and b and given a <= b, find the bitwise AND of all integers from a and b.
Section 9 Combinations and Permutations Interview Questions
01 Permutations: Print all permutations of a given string.
02 Distinct Permutations of a String: Print all distinct permutations of a string that contains duplicates.
03 Letter Combinations of a Phone Number: Given a digit string, return all possible letter combinations that the number could represent on a phone board.
04 Factor Combination: Return all possible combinations of an integer n’s factors.
Section 10 Math Interview Questions
01 Reverse Integer: Reverse the digits of an integer n.
02 Palindrome Number: Determine whether an integer is a palindrome. Do this without extra space.
03 Excel Sheet Column Numbe: Given a column title from an Excel sheet, return its corresponding column number.
A SCHOOL YOU CAN TRUST
Lifetime access that never expires
Project-based curriculum to superboost your portfolio
Graduation certificate for every course
Absolute beginner-friendly
New courses every month
Efficient lectures with step by step explanations
Relevant industry topics 8 years of award-winning course delivery
800,000 students in 186 countries
Learn with free tools and affordable courses
REVIEWS OF MAMMOTH COURSES
Captivating voice, easy to follow at a rapid pace, get some paper and fasten your seat-belts. I'm enjoying every second of this.
— PHILIP MURRAY
I have completed many Udemy tutorials. This one is the most outstanding one that I have seen thus far. It is doubtful that it could be topped. This is a superior tutorial. Amazing.
— JOSEPH APPLEGARTH
COURSE AUTHOR
Alexandra Kropova, Software Developer at Mammoth Interactive INC.
Alexandra Kropova is a software developer specializing in OOP and JavaScript, with extensive experience in full-stack web development and app development. She has helped produce courses for Mammoth Interactive INC. since 2016, including the Coding Interview series in Java, JavaScript, C++, C#, Python and Swift.