SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
My 2 Cents of Preparing Coding Interview
Introduction 
ž In most experience of Coding Interview, 
we have noticed more and more 
interview questions are focusing on 
algorithms. 
ž To tell whether algorithms are better or 
worse, there is complexity BigO to 
measure the performance in theory. 
ž Today, I would like to introduce 
Algorithm Hierarchy to organize thinking 
way.
Not only Algorithm 
ž Remember: Not only is Algorithm one 
key part of coding interview, but also 
working attitude, communication skills, 
big picture thinking and so on are more 
considered etc.
Algorithm Hierarchy in thought 
ž 1. Basic Algorithm 
ž 2. Space–time tradeoff 
ž 3. Pruning Algorithm 
ž 4. Optimized Algorithm 
ž 5. Big data Algorithm 
ž Remember: As hierarchy is like pyramid, 
you would better working more on 
foundation then looking forward.
1. Basic Algorithm 
ž (completed and easy reading –cy) 
ž Recursion, Backtracking, Blind 
searching and sorting like DFS, BFS, 
merge sort and qsort etc.
2. Space–time tradeoff 
ž (completed and fast by additional space 
–cy) 
ž Iteration, Dynamic Programming, Hash, 
Priority queue etc.
3. Pruning Algorithm 
ž (completed and fast via shortcuts –cy) 
ž Binary search in rotated array, K largest, 
Single Linked List cycle detect, Matrix 
multiplication etc.
4. Optimized Algorithm 
ž (faster and almost completed –cy) 
ž Estimated value, Hill climbing, Greedy 
Heuristic search like A*, D* etc.
5. Big data Algorithm 
ž (fastest and almost completed –cy) 
ž Divide and Conquer (Cloud, Cluster) 
and Machine learning, (Genetic, Ant 
Colony), Artificial intelligence (Alpha- 
Beta, MCTS) etc.
Example of Algorithm Hierarchy 
ž Let me explain hierarchy by calculating 
Fibonacci sequence. 
ž 0, 1, 1, 2, 3, 5, 8, … 
ž Now we need to calculate nTh number 
in Fibonacci sequence.
Fibonacci sequence (1) 
ž 1. Basic Algorithm : Complexity O(n!) 
ž long long f1(int n) { 
ž return n < 2 ? n : (f1(n-1) + f1(n-2)); 
ž }
Fibonacci sequence (2) 
ž 2. Space–time tradeoff : Complexity O(n) 
ž long long f2(int n){ 
ž long long f[2] = {0, 1}; 
ž while (--n>=1) { 
ž f[0]=f[0]+f[1]; 
ž swap(f[0], f[1]); 
ž } 
ž return f[n+1]; 
ž }
Fibonacci sequence (3) 
ž 3. Probing Algorithm : Complexity O(log 
n) 
ž long long f3(int n){ 
ž return (n < 2)? n : 
MatrixPower(n-1).m_00; //power of 
matrix { {1,1}, {1, 0} } 
ž }
Fibonacci sequence (4) 
ž 4. Optimized Algorithm : Complexity 
O(1) 
ž const double sqrt5 =sqrt(5.0); 
ž long long f4 (int n){ 
ž return 0.5 + (pow((1+sqrt5)/2, n)) / 
sqrt5; 
ž }
Fibonacci sequence (5) 
ž 5. Big data Algorithm 
ž long long f5 (int n){ 
ž return f[n]; 
ž }
Fibonacci sequence (Output) 
ž f1(90) = timeout 
ž f2(90) = 2880067194370816120 
ž f3(90) = 2880067194370816120 
ž f4(90) = 2880067194370824704 
ž f5(90) = 2880067194370816120 
ž You may see f4(90) is slightly different 
because of double-precision, but it 
works for n<=70
No Recursion 
Remember: Don’t use Recursion for large 
scale problem, using Iteration instead at 
least, especially for graph problems like 
tree verify, sum and traversal etc.
Algorithm Hierarchy in Interview 
ž For Algorithm Hierarchy in Coding 
Interview, in my humble opinion, most 
Phone interview is on level 1, and most 
on-site interview is on level 2-3, 
however, you may asking about level 
4-5 algorithm.
Real Sample: Amazon’s most 
asked interview questions 
ž (source: geeksquiz.com) 
ž 1) K largest elements from a big file or array. 
ž 2) Find a triplet a, b, c such that a2 = b2 + c2. Variations of this problem like find 
a triplet with sum equal to 0. Find a pair with given sum. All such questions are 
efficiently solved using hashing. 
ž 3) Binary tree traversal questions like left view, right view, top view, bottom view, 
maximum of a level, minimum of a level, children sum property, diameter etc. 
ž 4) Convert a BST into a DLL and DLL to BST in place. 
ž 5) Vertical traversal of a Binary Tree. 
ž 6) Lowest Common ancestor in a Binary Search Tree and Binary Tree. 
ž 7) Implement a stack with push(), pop() and min() in O(1) time. 
ž 8) Reverse a linked list in groups of size k. 
ž 9) Given two numbers represented by two linked lists, write a function that 
returns sum list. 
ž 10) Rotate a matrix by 90 degree. 
ž 11) Some stack based questions like stock span problem, next greater element. 
ž 12) Some Dynamic Programming problems like maximum sum subarray, 
maximum sum subarray such that no elements are consecutive, edit distance, 
assembly line scheduling. 
ž You may easily find out there are 4 questions in each level 1-3, well balanced.
KISS in phone interview 
Think aloud face to face 
ž Remember: Don’t think too complex in 
phone interview, just clarify your idea 
and keep it stupid simple(KISS). 
ž For on-site interview, you would better to 
well prepare and think aloud.
oj.leetcode.com for preparing 
ž Last but not least, let me recommend 
oj.leetcode.com for preparing Coding 
Interview. 
ž After solving more than 140 problems in 
oj.leetcode.com in several days, I could 
summary out its Hierarchy: 49% level 1, 
28% level 2, 23% level 3. 
ž LeetCode is focusing on data structures 
and algorithms. It requires not only just 
workable, but also optimized code. So you 
need to program in strict time and space 
complexity.
Bottom line to pass interview 
ž Remember: In order to pass coding 
interview, you may need to solve 2-5 
problems per hour in oj.leetcode.com.
Thanks 
ž Thanks for watching. It is just my 
humble opinion, my 2 cents. 
ž Should you have any questions, please 
feel free to contact me. 
ž All rights reserved. Please contact 
changyu.yang for permission to copy, 
distribute or reprint.

Contenu connexe

Tendances

Algorithms and flowcharts ppt (seminar presentation)..
 Algorithms and flowcharts  ppt (seminar presentation).. Algorithms and flowcharts  ppt (seminar presentation)..
Algorithms and flowcharts ppt (seminar presentation)..
Nagendra N
 
Our presentation on algorithm design
Our presentation on algorithm designOur presentation on algorithm design
Our presentation on algorithm design
Nahid Hasan
 
flowchart & algorithms
flowchart & algorithmsflowchart & algorithms
flowchart & algorithms
Student
 

Tendances (19)

Unit 1-problem solving with algorithm
Unit 1-problem solving with algorithmUnit 1-problem solving with algorithm
Unit 1-problem solving with algorithm
 
Algorithm defination, design & Implementation
Algorithm defination, design & ImplementationAlgorithm defination, design & Implementation
Algorithm defination, design & Implementation
 
Algorithms and flowcharts ppt (seminar presentation)..
 Algorithms and flowcharts  ppt (seminar presentation).. Algorithms and flowcharts  ppt (seminar presentation)..
Algorithms and flowcharts ppt (seminar presentation)..
 
2.3 Apply the different types of algorithm to solve problem
2.3 Apply the different types of algorithm to solve problem2.3 Apply the different types of algorithm to solve problem
2.3 Apply the different types of algorithm to solve problem
 
Our presentation on algorithm design
Our presentation on algorithm designOur presentation on algorithm design
Our presentation on algorithm design
 
Lecture 2 role of algorithms in computing
Lecture 2   role of algorithms in computingLecture 2   role of algorithms in computing
Lecture 2 role of algorithms in computing
 
phases of algorithm
phases of algorithmphases of algorithm
phases of algorithm
 
flowchart & algorithms
flowchart & algorithmsflowchart & algorithms
flowchart & algorithms
 
Algorithm and Programming (Introduction of Algorithms)
Algorithm and Programming (Introduction of Algorithms)Algorithm and Programming (Introduction of Algorithms)
Algorithm and Programming (Introduction of Algorithms)
 
Programing Fundamental
Programing FundamentalPrograming Fundamental
Programing Fundamental
 
Algorithm & flow chart
Algorithm & flow chartAlgorithm & flow chart
Algorithm & flow chart
 
Flowchart and algorithm
Flowchart and algorithmFlowchart and algorithm
Flowchart and algorithm
 
Flowcharts and algorithms
Flowcharts and algorithmsFlowcharts and algorithms
Flowcharts and algorithms
 
Programming aids- Algorithm, Flowchart, Pseudocodes and Decision table
Programming aids- Algorithm, Flowchart, Pseudocodes and Decision tableProgramming aids- Algorithm, Flowchart, Pseudocodes and Decision table
Programming aids- Algorithm, Flowchart, Pseudocodes and Decision table
 
Introduction to Algorithms & flow charts
Introduction to Algorithms & flow chartsIntroduction to Algorithms & flow charts
Introduction to Algorithms & flow charts
 
Algorithm and flowchart with pseudo code
Algorithm and flowchart with pseudo codeAlgorithm and flowchart with pseudo code
Algorithm and flowchart with pseudo code
 
Design & Analysis of Algorithms Lecture Notes
Design & Analysis of Algorithms Lecture NotesDesign & Analysis of Algorithms Lecture Notes
Design & Analysis of Algorithms Lecture Notes
 
Algorithm and pseudocode conventions
Algorithm and pseudocode conventionsAlgorithm and pseudocode conventions
Algorithm and pseudocode conventions
 
Writing algorithms
Writing algorithmsWriting algorithms
Writing algorithms
 

En vedette

Develop and Deploy Scalable Apps with Google App Engine
Develop and Deploy Scalable Apps with Google App EngineDevelop and Deploy Scalable Apps with Google App Engine
Develop and Deploy Scalable Apps with Google App Engine
David Chandler
 
Introdução ao OpenLayers
Introdução ao OpenLayersIntrodução ao OpenLayers
Introdução ao OpenLayers
Fernando Quadro
 
Mapping, GIS and geolocating data in Java
Mapping, GIS and geolocating data in JavaMapping, GIS and geolocating data in Java
Mapping, GIS and geolocating data in Java
Joachim Van der Auwera
 
Geospatial for Java
Geospatial for JavaGeospatial for Java
Geospatial for Java
Jody Garnett
 

En vedette (7)

Develop and Deploy Scalable Apps with Google App Engine
Develop and Deploy Scalable Apps with Google App EngineDevelop and Deploy Scalable Apps with Google App Engine
Develop and Deploy Scalable Apps with Google App Engine
 
Introdução ao OpenLayers
Introdução ao OpenLayersIntrodução ao OpenLayers
Introdução ao OpenLayers
 
Mapping, GIS and geolocating data in Java
Mapping, GIS and geolocating data in JavaMapping, GIS and geolocating data in Java
Mapping, GIS and geolocating data in Java
 
FOSS4G2011 Report
FOSS4G2011 ReportFOSS4G2011 Report
FOSS4G2011 Report
 
Geospatial for Java
Geospatial for JavaGeospatial for Java
Geospatial for Java
 
Symbian Os
Symbian OsSymbian Os
Symbian Os
 
Integrating PostGIS in Web Applications
Integrating PostGIS in Web ApplicationsIntegrating PostGIS in Web Applications
Integrating PostGIS in Web Applications
 

Similaire à Algorithm hierarchy

Analysis of Algorithm full version 2024.pptx
Analysis of Algorithm  full version  2024.pptxAnalysis of Algorithm  full version  2024.pptx
Analysis of Algorithm full version 2024.pptx
rajesshs31r
 
Design Analysis of Alogorithm 1 ppt 2024.pptx
Design Analysis of Alogorithm 1 ppt 2024.pptxDesign Analysis of Alogorithm 1 ppt 2024.pptx
Design Analysis of Alogorithm 1 ppt 2024.pptx
rajesshs31r
 
Page 3SECTION 1. Algorithm Analysis [1 pt per prompt = 12 poi.docx
Page 3SECTION 1.  Algorithm Analysis [1 pt per prompt = 12 poi.docxPage 3SECTION 1.  Algorithm Analysis [1 pt per prompt = 12 poi.docx
Page 3SECTION 1. Algorithm Analysis [1 pt per prompt = 12 poi.docx
bunyansaturnina
 
2-Algorithms and Complexit data structurey.pdf
2-Algorithms and Complexit data structurey.pdf2-Algorithms and Complexit data structurey.pdf
2-Algorithms and Complexit data structurey.pdf
ishan743441
 

Similaire à Algorithm hierarchy (20)

Analysis of Algorithms
Analysis of AlgorithmsAnalysis of Algorithms
Analysis of Algorithms
 
Daa
DaaDaa
Daa
 
Introduction to cp
Introduction to cpIntroduction to cp
Introduction to cp
 
Lecture 01-2.ppt
Lecture 01-2.pptLecture 01-2.ppt
Lecture 01-2.ppt
 
Design & Analysis Of Algorithm
Design & Analysis Of AlgorithmDesign & Analysis Of Algorithm
Design & Analysis Of Algorithm
 
chapter 1
chapter 1chapter 1
chapter 1
 
Analysis of Algorithm full version 2024.pptx
Analysis of Algorithm  full version  2024.pptxAnalysis of Algorithm  full version  2024.pptx
Analysis of Algorithm full version 2024.pptx
 
Design Analysis of Alogorithm 1 ppt 2024.pptx
Design Analysis of Alogorithm 1 ppt 2024.pptxDesign Analysis of Alogorithm 1 ppt 2024.pptx
Design Analysis of Alogorithm 1 ppt 2024.pptx
 
Effective Algorithm for n Fibonacci Number By: Professor Lili Saghafi
Effective Algorithm for n Fibonacci Number By: Professor Lili SaghafiEffective Algorithm for n Fibonacci Number By: Professor Lili Saghafi
Effective Algorithm for n Fibonacci Number By: Professor Lili Saghafi
 
VCE Unit 01 (2).pptx
VCE Unit 01 (2).pptxVCE Unit 01 (2).pptx
VCE Unit 01 (2).pptx
 
Lecture 1 (bce-7)
Lecture   1 (bce-7)Lecture   1 (bce-7)
Lecture 1 (bce-7)
 
2nd sem
2nd sem2nd sem
2nd sem
 
2nd sem
2nd sem2nd sem
2nd sem
 
An introduction to Competitive Programming
An introduction to Competitive ProgrammingAn introduction to Competitive Programming
An introduction to Competitive Programming
 
Analyzing algorithms
Analyzing algorithmsAnalyzing algorithms
Analyzing algorithms
 
Data oriented design and c++
Data oriented design and c++Data oriented design and c++
Data oriented design and c++
 
Page 3SECTION 1. Algorithm Analysis [1 pt per prompt = 12 poi.docx
Page 3SECTION 1.  Algorithm Analysis [1 pt per prompt = 12 poi.docxPage 3SECTION 1.  Algorithm Analysis [1 pt per prompt = 12 poi.docx
Page 3SECTION 1. Algorithm Analysis [1 pt per prompt = 12 poi.docx
 
Unit I- Data structures Introduction, Evaluation of Algorithms, Arrays, Spars...
Unit I- Data structures Introduction, Evaluation of Algorithms, Arrays, Spars...Unit I- Data structures Introduction, Evaluation of Algorithms, Arrays, Spars...
Unit I- Data structures Introduction, Evaluation of Algorithms, Arrays, Spars...
 
2-Algorithms and Complexit data structurey.pdf
2-Algorithms and Complexit data structurey.pdf2-Algorithms and Complexit data structurey.pdf
2-Algorithms and Complexit data structurey.pdf
 
GE3151 PSPP _Unit 1 notes and Question bank.pdf
GE3151 PSPP _Unit 1 notes and Question bank.pdfGE3151 PSPP _Unit 1 notes and Question bank.pdf
GE3151 PSPP _Unit 1 notes and Question bank.pdf
 

Dernier

Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
FIDO Alliance
 

Dernier (20)

Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
Event-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingEvent-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream Processing
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & Ireland
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
Your enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4jYour enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4j
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The InsideCollecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
 

Algorithm hierarchy

  • 1. My 2 Cents of Preparing Coding Interview
  • 2. Introduction ž In most experience of Coding Interview, we have noticed more and more interview questions are focusing on algorithms. ž To tell whether algorithms are better or worse, there is complexity BigO to measure the performance in theory. ž Today, I would like to introduce Algorithm Hierarchy to organize thinking way.
  • 3. Not only Algorithm ž Remember: Not only is Algorithm one key part of coding interview, but also working attitude, communication skills, big picture thinking and so on are more considered etc.
  • 4. Algorithm Hierarchy in thought ž 1. Basic Algorithm ž 2. Space–time tradeoff ž 3. Pruning Algorithm ž 4. Optimized Algorithm ž 5. Big data Algorithm ž Remember: As hierarchy is like pyramid, you would better working more on foundation then looking forward.
  • 5. 1. Basic Algorithm ž (completed and easy reading –cy) ž Recursion, Backtracking, Blind searching and sorting like DFS, BFS, merge sort and qsort etc.
  • 6. 2. Space–time tradeoff ž (completed and fast by additional space –cy) ž Iteration, Dynamic Programming, Hash, Priority queue etc.
  • 7. 3. Pruning Algorithm ž (completed and fast via shortcuts –cy) ž Binary search in rotated array, K largest, Single Linked List cycle detect, Matrix multiplication etc.
  • 8. 4. Optimized Algorithm ž (faster and almost completed –cy) ž Estimated value, Hill climbing, Greedy Heuristic search like A*, D* etc.
  • 9. 5. Big data Algorithm ž (fastest and almost completed –cy) ž Divide and Conquer (Cloud, Cluster) and Machine learning, (Genetic, Ant Colony), Artificial intelligence (Alpha- Beta, MCTS) etc.
  • 10. Example of Algorithm Hierarchy ž Let me explain hierarchy by calculating Fibonacci sequence. ž 0, 1, 1, 2, 3, 5, 8, … ž Now we need to calculate nTh number in Fibonacci sequence.
  • 11. Fibonacci sequence (1) ž 1. Basic Algorithm : Complexity O(n!) ž long long f1(int n) { ž return n < 2 ? n : (f1(n-1) + f1(n-2)); ž }
  • 12. Fibonacci sequence (2) ž 2. Space–time tradeoff : Complexity O(n) ž long long f2(int n){ ž long long f[2] = {0, 1}; ž while (--n>=1) { ž f[0]=f[0]+f[1]; ž swap(f[0], f[1]); ž } ž return f[n+1]; ž }
  • 13. Fibonacci sequence (3) ž 3. Probing Algorithm : Complexity O(log n) ž long long f3(int n){ ž return (n < 2)? n : MatrixPower(n-1).m_00; //power of matrix { {1,1}, {1, 0} } ž }
  • 14. Fibonacci sequence (4) ž 4. Optimized Algorithm : Complexity O(1) ž const double sqrt5 =sqrt(5.0); ž long long f4 (int n){ ž return 0.5 + (pow((1+sqrt5)/2, n)) / sqrt5; ž }
  • 15. Fibonacci sequence (5) ž 5. Big data Algorithm ž long long f5 (int n){ ž return f[n]; ž }
  • 16. Fibonacci sequence (Output) ž f1(90) = timeout ž f2(90) = 2880067194370816120 ž f3(90) = 2880067194370816120 ž f4(90) = 2880067194370824704 ž f5(90) = 2880067194370816120 ž You may see f4(90) is slightly different because of double-precision, but it works for n<=70
  • 17. No Recursion Remember: Don’t use Recursion for large scale problem, using Iteration instead at least, especially for graph problems like tree verify, sum and traversal etc.
  • 18. Algorithm Hierarchy in Interview ž For Algorithm Hierarchy in Coding Interview, in my humble opinion, most Phone interview is on level 1, and most on-site interview is on level 2-3, however, you may asking about level 4-5 algorithm.
  • 19. Real Sample: Amazon’s most asked interview questions ž (source: geeksquiz.com) ž 1) K largest elements from a big file or array. ž 2) Find a triplet a, b, c such that a2 = b2 + c2. Variations of this problem like find a triplet with sum equal to 0. Find a pair with given sum. All such questions are efficiently solved using hashing. ž 3) Binary tree traversal questions like left view, right view, top view, bottom view, maximum of a level, minimum of a level, children sum property, diameter etc. ž 4) Convert a BST into a DLL and DLL to BST in place. ž 5) Vertical traversal of a Binary Tree. ž 6) Lowest Common ancestor in a Binary Search Tree and Binary Tree. ž 7) Implement a stack with push(), pop() and min() in O(1) time. ž 8) Reverse a linked list in groups of size k. ž 9) Given two numbers represented by two linked lists, write a function that returns sum list. ž 10) Rotate a matrix by 90 degree. ž 11) Some stack based questions like stock span problem, next greater element. ž 12) Some Dynamic Programming problems like maximum sum subarray, maximum sum subarray such that no elements are consecutive, edit distance, assembly line scheduling. ž You may easily find out there are 4 questions in each level 1-3, well balanced.
  • 20. KISS in phone interview Think aloud face to face ž Remember: Don’t think too complex in phone interview, just clarify your idea and keep it stupid simple(KISS). ž For on-site interview, you would better to well prepare and think aloud.
  • 21. oj.leetcode.com for preparing ž Last but not least, let me recommend oj.leetcode.com for preparing Coding Interview. ž After solving more than 140 problems in oj.leetcode.com in several days, I could summary out its Hierarchy: 49% level 1, 28% level 2, 23% level 3. ž LeetCode is focusing on data structures and algorithms. It requires not only just workable, but also optimized code. So you need to program in strict time and space complexity.
  • 22. Bottom line to pass interview ž Remember: In order to pass coding interview, you may need to solve 2-5 problems per hour in oj.leetcode.com.
  • 23. Thanks ž Thanks for watching. It is just my humble opinion, my 2 cents. ž Should you have any questions, please feel free to contact me. ž All rights reserved. Please contact changyu.yang for permission to copy, distribute or reprint.