**Programming Interview Questions**
Introduction
If you're a programmer aspiring to work in a top-tier tech company like Google, Microsoft, Apple, or Facebook - you're probably concerned with the interview process. These interviews can be daunting, especially if you're not familiar with the type of questions that you'll be expected to answer. This is the reason why we've decided to compile this selection of programming interview questions you might face in an interview tomorrow, hopefully helping you both learn about them, understanding their nature, as well as reinforcing your knowledge. Most of these questions revolve around Data Structures and Algorithms so the most attention is given to them. Although the focus is on Data Structures and Algorithms, we'll cover a few logical questions you might run into as well! Most of these questions and examples will also contain some basic-level explanations, since, in my humble opinion, a lot of terminologies are being used without proper understanding of what they actually mean. It's worth mentioning that a certain degree of mathematical knowledge here is important. Don't worry, you don't have to be a mathematical genius, but knowing Discrete Mathematics is a huge advantage.Data Structure and Algorithms
A Data Structure is a fundamental and simple concept. It's a way of organizing data and their relationship to allow efficient operations to be performed on them. There are many data structures that programmers and developers regularly use such as:- Arrays
- Binary Trees
- Graphs
- Linked Lists
- Matrixes
- Stacks
- Queues
- Heaps
- Hash Tables
Graph Data Structure Interview Questions
- Breadth First Search
- Depth First Search
- A* Search
- Dijkstra Algorithm
- Comparing BFS, DFS, A* and Dijkstra
Linked List Interview Questions
- Inserting and Removing Nodes
- Comparing Strings Represented as Linked Lists
- Reversing a List
- Selecting a Random Node
- Finding the Middle Node
- Kth Element from Last Node
- Frequency of a Given Number
- Intersection of Two Linked Lists
Dynamic Programming Interview Questions (coming soon)
- Fibonacci Number Sequence
- Longest Common Subsequence
Sorting an Searching Interview Questions (coming soon)
- Binary Search
- Bubble Sort
- Insertion Sort
- Merge Sort
- Heap Sort
- Quick Sort
- Interpolation
- Tree/Binary Search Tree
- Minimum Depth
- Maximum Path Sum
Number Theory Interview Questions (coming soon)
- Euclid's GCD Algorithm
- Extending Euclid's GCD Algorithm
- Diophantine Equation
- Chinese Remainder Theorem
- Modular Inverse
- Semi-Perfect Numbers
String Interview Questions (coming soon)
- Reversing a String
- Checking if String contains only digits
- Finding Duplicate Characters in a String
- How to Convert a String to Integer
- Removing Duplicate Characters in a String
- Finding the Maximum Occuring Character in a String
- Find the First Non-Repeating Character in a String
- Checking if Two Strings are Anagrams of Each Other
- Counting the Number of Words in a String
Array Interview Questions (coming soon)
- Finding the Missing Number from Array
- Finding Duplicate Integers in an Array
- Finding the Largest and Smallest Number in Unsorted Array
- Removing Duplicates from an Array
- Reversing an Array
- Finding the k-th Smallest Integer in an Unsorted Array
- Finding Common Elements Between Multiple Arrays