A free soft copy sample of Elements of Programming Interviews can be found at bit.ly/epi-sample The core of Elements of Programming Interviews (EPI) is a collection of 300 problems with detailed solutions, including over 100 figures and 250 tested programs. The problems are representative of the questions asked at interviews at the most exciting companies. They are well-motivated, thought-provoking and fun to solve! EPI includes a summary of the nontechnical aspects of interviewing, including common mistakes, strategies for a great interview, the interviewer's perspective, negotiating the best offer, and much more.Since different candidates have different time constraints, EPI includes a study guide with several study scenarios, ranging from weekend Hackathon to semester long preparation with a recommended a subset of problems for each scenario. All problems are classified in terms of their difficulty level and include many variants in addition to the 300 problems to help you apply what you have learned more widely.All problems includes hints for readers who get struck. This simulates what you will face in the real interview. 300 Programming Questions and Answers:Each chapter starts with a brief summary of key concepts and results followed by 10-30 questions. Individual chapter topics are:Getting ReadyStrategies For A Great InterviewConducting An InterviewPrimitive TypesArrays and StringsLinked ListsStacks and QueuesBinary TreesHeapsSearchingHash TablesSortingBinary Search TreesMeta-algorithmsAlgorithms on GraphsIntractabilityParallel ComputingDesign ProblemsProbabilityDiscrete MathematicsSolutions include code snippets which are primarily in C++. Programs concerned with concurrency are in Java. Complete programs are available at Google Code, specifically at ElementsOfProgrammingInterviews.com/code.