CtCI

####Google

Pay attention to Bit Manipulation

####General

Scalability

####Build a strong network

  1. Meetup.com or alumni network
  2. Be open
  3. LinkedIn
  4. Be helpful

####Compile a preparation grid

See Page.40

####Power of 2 table

See Page.47

####5 Steps to a technical question

  1. Resolve ambiguity
  2. Design an algorithm
  3. Write pseudocode first(tell about it)
  4. Write code at moderate pace
  5. Test and fix

####5 Algorithm approaches

  1. Examplify
  2. Pattern matching
  3. Simplify and generalize
  4. Base case and build
  5. Data structure brainstorm

##Interview Questions

###Data Structures

###1. Arrays and Strings

#####Hash Tables Implementing a hash table…

#####ArrayList(Dynamically Resizing Array)

#####StringBuffer Implement your own version of StringBuffer

#####1.1

#####1.3

#####1.4

#####1.5

#####1.6

#####1.7

#####1.8


###2. Linked Lists

#####Creating a Linked List

First find the tail, then append the node at the end.

#####Deleting a Node

#####The “Runner” Technique

Introduce a second pointer, different pointers have different pace of movement.

#####Recursive Problems

Using recursion is a way out, but that means O(n) space.

#####2.1 Remove duplicates

#####2.2 kth to last element

#####2.3 delete node with only access to that node

#####2.4 partition linked list around value x

#####2.5 linked list addition

#####2.6 beginning of the loop

#####2.7 palindrome detect


###3. Stacks and Queues

#####3.1 three stacks in one array

#####3.2 stack returns minimum in constant time

#####3.3 set of stacks

#####3.4 Hanoi using stack

Base Case and Build approach:

  1. Pretty easy

  2. Tower 2 as a buffer

  3. etc

#####3.5 MyQueue with two stacks

Your Comments

comments powered by Disqus