Skip to content

Latest commit

 

History

History
161 lines (94 loc) · 5.64 KB

interview_questions.md

File metadata and controls

161 lines (94 loc) · 5.64 KB

A list of problems found at reddit that could be useful if you're training for an interview, or if you just want to improve yourself as a programmer.

This list was copied from @delete's list

General

  • Find pairs in an integer array whose sum is equal to 10 (bonus: do it in linear time)

  • Given 2 integer arrays, determine of the 2nd array is a rotated version of the 1st array. Ex. Original Array A={1,2,3,5,6,7,8} Rotated Array B={5,6,7,8,1,2,3}

  • Write fibbonaci iteratively and recursively (bonus: use dynamic programming)

  • Find the only element in an array that only occurs once.

  • Find the common elements of 2 int arrays

  • Implement binary search of a sorted array of integers

  • Implement binary search in a rotated array (ex. {5,6,7,8,1,2,3})

  • Use dynamic programming to find the first X prime numbers

  • Write a function that prints out the binary form of an int

  • Implement parseInt

  • Implement squareroot function

  • Implement an exponent function (bonus: now try in log(n) time)

  • Write a multiply function that multiples 2 integers without using *

  • HARD: Given a function rand5() that returns a random int between 0 and 5, implement rand7()

  • HARD: Given a 2D array of 1s and 0s, count the number of "islands of 1s" (e.g. groups of connecting 1s)

Strings

  • Find the first non-repeated character in a String

  • Reverse a String iteratively and recursively

  • Determine if 2 Strings are anagrams

  • Check if String is a palindrome

  • Check if a String is composed of all unique characters

  • Determine if a String is an int or a double

  • HARD: Find the shortest palindrome in a String

  • HARD: Print all permutations of a String

  • HARD: Given a single-line text String and a maximum width value, write the function 'String justify(String text, int maxWidth)' that formats the input text using full-justification, i.e., extra spaces on each line are equally distributed between the words; the first word on each line is flushed left and the last word on each line is flushed right

Trees

  • Implement a BST with insert and delete functions

  • Print a tree using BFS and DFS

  • Write a function that determines if a tree is a BST

  • Find the smallest element in a BST

  • Find the 2nd largest number in a BST

  • Given a binary tree which is a sum tree (child nodes add to parent), write an algorithm to determine whether the tree is a valid sum tree

  • Find the distance between 2 nodes in a BST and a normal binary tree

  • Print the coordinates of every node in a binary tree, where root is 0,0

  • Print a tree by levels

  • Given a binary tree which is a sum tree, write an algorithm to determine whether the tree is a valid sum tree

  • Given a tree, verify that it contains a subtree.

  • HARD: Find the max distance between 2 nodes in a BST.

  • HARD: Construct a BST given the pre-order and in-order traversal Strings

Stacks, Queues, and Heaps

  • Implement a stack with push and pop functions

  • Implement a queue with queue and dequeue functions

  • Find the minimum element in a stack in O(1) time

  • Write a function that sorts a stack (bonus: sort the stack in place without extra memory)

  • Implement a binary min heap. Turn it into a binary max heap

  • HARD: Implement a queue using 2 stacks

Linked Lists

  • Implement a linked list (with insert and delete functions)

  • Find the Nth element in a linked list

  • Remove the Nth element of a linked list

  • Check if a linked list has cycles

  • Given a circular linked list, find the node at the beginning of the loop.

    • Example: A-->B-->C --> D-->E -->C, C is the node that begins the loop
  • Check whether a link list is a palindrome

  • Reverse a linked list iteratively and recursively

Sorting

  • Implement bubble sort

  • Implement selection sort

  • Implement insertion sort

  • Implement merge sort

  • Implement quick sort

Whiteboarding

  1. Palindrome (with native functions)
  2. Reverse a string
  3. FizzBuzz
  4. factoralize
  5. Flatten
  6. Recursion
  7. currying
  8. FIFO
  9. LIFO

Basic

  1. Loops https://www.freecodecamp.org/challenges/repeat-a-string-repeat-a-string
  2. Factoralize https://www.freecodecamp.org/challenges/factorialize-a-number
  3. Split https://www.freecodecamp.org/challenges/title-case-a-sentence
  4. Nested Loops https://www.freecodecamp.org/challenges/return-largest-numbers-in-arrays
  5. while loop https://www.freecodecamp.org/challenges/chunky-monkey
  6. splice https://www.freecodecamp.org/challenges/drop-it
  7. data map https://www.codewars.com/kata/5862e0db4f7ab47bed0000e5
  8. data map https://www.codewars.com/kata/545cedaa9943f7fe7b000048/train/javascript
  9. split accumulation https://www.codewars.com/kata/55bf01e5a717a0d57e0000ec/train/javascript
  10. pangram loops https://www.codewars.com/kata/545cedaa9943f7fe7b000048/train/javascript
  11. nested loop https://www.codewars.com/kata/5432fd1c913a65b28f000342/train/javascript
  12. modulus https://www.codewars.com/kata/58223370aef9fc03fd000071/train/javascript

Mid

  1. Diff Array https://www.freecodecamp.org/challenges/diff-two-arrays
  2. recursion https://www.codewars.com/kata/persistent-bugger/train/javascript
  3. currying, reduce https://www.codewars.com/kata/54ca3e777120b56cb6000710/train/javascript

Hard

  1. Flatten, recursion https://www.freecodecamp.org/challenges/steamroller
  2. while, FILO, https://www.codewars.com/kata/57b06f90e298a7b53d000a86/train/javascript