-
Implement and test skip lists. Flash card it. Use "Open Data Structures".
-
(Glassdoor) Given array of integers print highest sum of any continuous sequence.
-
(Glassdoor) http://www.glassdoor.com/Interview/Amazon-com-Interview-RVW3017517.htm
-
(Glassdoor) given array of N integers find the three numbers that result in the largest product. (http://www.glassdoor.com/Interview/Amazon-com-Interview-RVW3040436.htm)
-
Glassdoor: http://www.glassdoor.com/Interview/Amazon-com-Interview-RVW2931571.htm
-
(Glassdoor) Implement a Stack using Queues.
-
Glassdoor: http://www.glassdoor.com/Interview/Amazon-com-Interview-RVW2789013.htm
-
(Glassdoor) Check that a binary tree is BST.
-
Glassdoor: http://www.glassdoor.com/Interview/Amazon-com-Interview-RVW2779322.htm
-
(Glassdoor) (OOD) Design a deck of cards. Get the highest value card in the deck at any given time.
-
geeksforgeeks: http://www.geeksforgeeks.org/difference-between-sums-of-odd-and-even-levels/
-
Implement and test mergesort. Flash card it.
-
Cracking the Coding Interview, p68, q7.7 - q7.10
-
Flashcard topological sorting (used for dependency trees)
-
http://www.geeksforgeeks.org/amazon-interview-set-41-campus/
-
CareerCup: http://www.careercup.com/question?id=62565
-
(Glassdoor) Merge sort
-
Cracking the Coding Interview, p68, q8.5 - 8.8
-
Cracking the Coding Interview, p68, q9.4 - q9.7
-
Try an exercism.io problem
-
Programming interview email (spiral, max contiguous sum)
-
TopCoder SRM 584 Div 2 Level One "TopFox" (via PyTopCoder scraper) http://community.topcoder.com/stat?c=problem_statement&pm=12643&rd=15696 http://apps.topcoder.com/wiki/display/tc/SRM+584
-
CareerCup: http://www.careercup.com/question?id=6040159610994688
-
(Glassdoor) Inorder tree traversal.
-
TopCoder SRM 584 Div 2 Level Two "Egalitarianism" (via PyTopCoder scraper) http://community.topcoder.com/stat?c=problem_statement&pm=12613&rd=15696 http://apps.topcoder.com/wiki/display/tc/SRM+584
-
http://www.geeksforgeeks.org/forums/topic/amazon-interview-3rd-round/
-
Use
abcmodule to implement BaseReader and CSVReader. Check withpymotw_abc.pyfor notes. BaseReader declares and defines open(), but only declares read(). Create an abstract property "valid" which indicates a concrete class thinks the file is valid. -
Put special regular expression operators in Python (positive lookbehind, negative lookbehind) into flash cards.
-
CareerCup: http://www.careercup.com/question?id=6306164115505152
-
Skim more of "Head First OOD+A"
-
TopCoder SRM 585 Div 2 Level One "LISNumberDivTwo" (via PyTopCoder scaper) http://community.topcoder.com/stat?c=problem_statement&pm=12446&rd=15697
-
TopCoder SRM 585 Div 2 Level Two "TrafficCongestionDivTwo" http://community.topcoder.com/stat?c=problem_statement&pm=12697&rd=15697 http://apps.topcoder.com/wiki/display/tc/SRM+585
-
Glassdoor: http://www.glassdoor.com/Interview/Amazon-com-Interview-RVW2559180.htm
-
Cracking the Coding Interview, p42, do example (keep track of median of an ever expanding array of random numbers, as one max-heap and one min-heap). (Do HackerRank 'Median' challenge to do this, in 'Search')
-
CareerCup: http://www.careercup.com/question?id=4549140239351808
-
Glassdoor: http://www.glassdoor.com/Interview/Amazon-com-Interview-RVW2590186.htm
-
HackerRank - 'Find strings' (Strings)
-
MIT interview handout (1/5)
-
CodeEval, 'Mth to Last Element of a Linked List' (moderate?)
-
Cracking the Coding Interview, p60, q4.1 - q4.8
-
MIT interview handout (2/5)
-
MIT interview handout (3/5)
-
Scalability for Dummies (4 parts); turn into flash cards
-
MIT interview handout (4/5)
-
Choose one HackerRank problem that involve trees
-
MIT interview handout (5/5)
-
Choose one HackerRank problem that involve graphs
-
Programming Interview Exposed, Chapter 10, "Databases"
-
Finish reading Steve Yegge's phone interview blog post
-
HackerRank, one or two
-
CodeEval, one or two
-
Cracking the Coding Interview, p78, q12.1
-
Cracking the Coding Interview, p78, q12.6
-
HackerRank, 'Correctness and the Loop Invariant'
-
Programming Interviews Exposed (2nd ed) chapter 10 "OOD"
-
HackerRank - 'Chocolate Feast' (Challange)
-
HackerRank - 'Lonely Integer' (Search)
-
CodeEval, 'Email Validation'
-
Read IBM DeveloperWorks 'Class Diagrams' http://www.ibm.com/developerworks/rational/library/content/RationalEdge/sep04/bell/
-
Cracking the Coding Interview, p68, q7.6
-
HackerRank - 'Candies' (Dynamic Programming)
-
TopCoder Feature Article on Dynamic Programming http://community.topcoder.com/tc?module=Static&d1=features&d2=040104
-
Cracking the Coding Interview, p68, q7.7
-
All 'Interview Cake' problems (one pass)
-
[REDO] CareerCup: http://www.careercup.com/question?id=21263687
-
Implement counting sort. Flash card it.
-
Put GRASP into flash cards.
-
Cracking the Coding Interview, p54, q1.5 - q1.8
-
[REDO] (Glassdoor) implement rand7 using rand5
-
geeksforgeeks: http://www.geeksforgeeks.org/forums/topic/preorder-successor/
-
geeksforgeeks: http://www.geeksforgeeks.org/add-greater-values-every-node-given-bst/
-
Cracking the Coding Interview, p56, q2.1 - q2.3 (do q2.2 on Codeeval instead: https://www.codeeval.com/open_challenges/10/)
-
CareerCup: http://www.careercup.com/question?id=62565
-
Put O'Reilly DFS and BFS into flash-cards, write little Python scripts to confirm knowledge
-
geeksforgeeks: http://www.geeksforgeeks.org/print-left-view-binary-tree/
-
geeksforgeeks: http://www.geeksforgeeks.org/check-leaves-level/
-
Design and write a Boggle solver in Python (assume access to a dictionary) that gets the longest words. OOD, data structures, algorithms first. (use online solver to confirm it works).
-
Cracking the Coding Interview, p58, q4.1 - q4.8
-
Cracking the Coding Interview, p58, q3.1 - 3.6
-
http://www.geeksforgeeks.org/amazon-interview-set-48-for-software-development-post/
- Keep talking! Always explain what you are doing.
- Play within the restrictions of questions.
- Understand before solving. Then start with an example.
- Explain what you're doing before and while coding. Keep talking!
- Try an example, check all error and special cases.
- If failing, return to specific example. Try to move from specific example to general case to solution.
- Try different data structures or advanced language features.
- Use data structures and OOD. e.g. to find the minimum age of a group of people define a Person class.
- Examplify. Specific examples to general rule.
- Pattern matching. What is problem similar to?
- Simplify (data type, size) and generalize.
- Base case (one element) then build (two, three, ...)
- Data structure brainstorm (run through list of data structures)
- What are your goals? What is the external interface?
- What are the core objects, what is the hierarchy?
- Have you missed anything?
- What data structures and algorithms will you use in methods?
https://sites.google.com/site/steveyegge2/five-essential-phone-screen-questions
- Coding: write some simple code with correct syntax.
- OO design: define basic OO concepts, simple classes to model simple problem
- Scripting and regexs: find phone numbers in 50,000 HTML pages.
- Data structures
- Bits and bytes and binary.
### OOD
- Encapsulate what varies.
- When desinging softwware, anticipate change and hide it behind an interface. When things change only the implementation changes, not the consumers of the interface.
- An interface declares but doesn't define a set of related methods that inheriting objects promise to implement.
- An abstract class is an incomplete class definition that declares, and may or may not define, its methods.
- Python abstract base class Animal with one method 'make_noise()', and Dog that uses it.
import abc
class Animal(object)
__metaclass__ = abc.ABCMeta
@abc.abstractmethod
def make_noise(self):
return
class Dog(Animal):
def make_noise(self):
print('woof!')