I am not the creator of this list of problems. Credits to the original creator(s):
I am also linking the problems from Grind75(https://www.techinterviewhandbook.org/grind75?order=difficulty&grouping=topics&hours=40&weeks=3&difficulty=Easy&difficulty=Medium)
Note: The filter of the website is set to Easy and Medium problems (143 problems in all from this website itself)
Some problems from Grind 75 overlap with the ones that have been listed below. I have marked them as G75.
- Determine if there is a cycle or not
- If there is a cycle, return the node where the cycle begins
- Find the node where two linked lists intersect
- Remove Nth node from end of the list
- Reverse linked list
- Remove linked list elements of a given value
- Group all odd nodes and even nodes together in order
- Palindrome linked list
- Merge two sorted linked lists
- Insert into a cyclic sorted linked list
- Rotate linked list by K places
- XOR linked list
- Reverse linked list in blocks of K
- Find pivot index (where sum of numbers to left = sum of numbers to right)
- Diagonal traverse and print
- Spiral matrix
- Implement strstr()
- Two pointer technique - reverse string, array partition
- Two pointer - one fast runner, one slow runner - remove element in one scan, max consecutive 1's, minimum size subareay sum, rotate array
- Reverse words in a string - word by word, reverse within a word and maintain the order
- Remove duplicates from sorted array
- Move all zeroes to the end
- Max sub array sum - DP
- Find K closest elements to a given value
- 2 sum (return indices of 2 numbers such that they add up to a specific target) (G75)
- 4 sum
- Find all duplicates
- Intersection of 2 arrays
- Isomorphic strings
- First unique character in a string (one pass, two pass etc)
- Group anagrams
- Valid Sudoku
- Longest substring without repeating characters
- LRU cache (G75)
- Ransom Note (G75)
- Insert Delete GetRandom O(1) (G75)
- Design Hashmap
- Implement Stack using an Array
- Implement Stack using a Linked List
- Implement Queue using Stack (G75)
- Valid (Balanced) Parentheses (G75)
- Backspace String Compare (G75)
- Evaluate Reverse Polish Notation (G75)
- Min Stack (G75)
- Daily Temperature (G75)
- Decode String (G75)
- Asteroid Collision (G75)
- Basic Calculator II (G75)
- Trapping Rain Water (G75)
- Implement Queue using an Array
- Implement Queue using a Linked List
- Implement Stack using Queue
- Circular (Ring) buffer
- Design Hit Counter(G75)
- Selection sort
- Bubble sort
- Insertion sort
- Merge sort
- Quick sort
- Linear search
- Binary search
- Swap bits in odd and even positions
- Power of 2
- Set, clear and toggle i'th bit
- Find position of the only bit that is set
- Count no of set bits in logN time
- Add two nos without arithmetic operators(G75)
- Find the only no that appears once(G75)
- Set all bits in a given range
- Compute 2's complement
- Position of right most bit set
- Isolate the right most bit set
- Toggling right most bit set
- Position of left most bit set
- Swap 2 nos without using temporary variable
- Reverse the order of bits in a no
- Modify a bit at a given position to a 1 or a 0
- Missing Number(G75)
- Number of 1 bits(G75)
- Counting bits(G75)
- Find the duplicate number(G75)
- Boot sequence
- Causes of segmentation fault and how to overcome it
- Differences between fault, abort and trap
- Compiler, assembler, linker, loader
- Volatile, pre processor, pragmas, const
- Fine grained vs coarse grained multithreading
- Virtual memory, paging, thread vs process
- Implement mutex using test and set, load linked and store conditional,
- Mutex vs semaphore
- Reader writer mutex
- Producer consumer
- Strict padding alignment
- Endianess - program to figure out the endianess, concert from big endian to little endian
- Implement memcpy, memmove, strstr, strcpy, atoi, malloc, free etc (all those standard library operations)
- Aligned malloc
- VIPT, TLBs , page faults
- Interrupts, exceptions, deadlocks, priroity inversion and inheritance
- HW breakpoint vs SW breakpoint
- SPI vs UART vs I2C
- Matrix multiplication, cache blocking, tiling, Gemm, rotation of matrices etc
- Bankers Algo, buddy system memory allocation, inverted paging
- Spinlocks, conditional variable
- Task scheduling, thrashing, cycle stealing, race conditions
- Queues, FIFO, Mailbox,
- Belady anomaly, philosopher dining problem
- Security : digital signing, hash, encryption
- Firmware update
- Unit testing vs integration testing
- RTOS vs bare metal
- HW timer : given HW timer, build an API to implemt a SW timer
- Function pointers and callbacks
- New, delete
- OOPS theory - Abstraction, inheritance, polymorphism and encapsulation
- Inline
- Virtual functions, vptr and vtable
- Friend class and function
- Virtual base class, abstract class
- Function pointers
- Templates, template specialization, object slicing
- Deep vs shallow copy
- Copy constructors, constructor vs destructor
- Overloading vs overriding operations
- Different types of casting
- Static keyword, static fucntion
- Pointers vs references
- lvalue and rvalue
- Smart pointers