SlideShare a Scribd company logo
1 of 23
Download to read offline
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.

More Related Content

What's hot

Unit 1-problem solving with algorithm
Unit 1-problem solving with algorithmUnit 1-problem solving with algorithm
Unit 1-problem solving with algorithmrajkumar1631010038
 
Algorithm defination, design & Implementation
Algorithm defination, design & ImplementationAlgorithm defination, design & Implementation
Algorithm defination, design & ImplementationBilal Maqbool ツ
 
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
 
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 problemFrankie Jones
 
Our presentation on algorithm design
Our presentation on algorithm designOur presentation on algorithm design
Our presentation on algorithm designNahid Hasan
 
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 computingjayavignesh86
 
flowchart & algorithms
flowchart & algorithmsflowchart & algorithms
flowchart & algorithmsStudent
 
Algorithm and Programming (Introduction of Algorithms)
Algorithm and Programming (Introduction of Algorithms)Algorithm and Programming (Introduction of Algorithms)
Algorithm and Programming (Introduction of Algorithms)Adam Mukharil Bachtiar
 
Flowchart and algorithm
Flowchart and algorithmFlowchart and algorithm
Flowchart and algorithmDHANIK VIKRANT
 
Flowcharts and algorithms
Flowcharts and algorithmsFlowcharts and algorithms
Flowcharts and algorithmsStudent
 
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 tableAnjali Technosoft
 
Introduction to Algorithms & flow charts
Introduction to Algorithms & flow chartsIntroduction to Algorithms & flow charts
Introduction to Algorithms & flow chartsYash Gupta
 
Algorithm and flowchart with pseudo code
Algorithm and flowchart with pseudo codeAlgorithm and flowchart with pseudo code
Algorithm and flowchart with pseudo codehamza javed
 
Design & Analysis of Algorithms Lecture Notes
Design & Analysis of Algorithms Lecture NotesDesign & Analysis of Algorithms Lecture Notes
Design & Analysis of Algorithms Lecture NotesFellowBuddy.com
 
Algorithm and pseudocode conventions
Algorithm and pseudocode conventionsAlgorithm and pseudocode conventions
Algorithm and pseudocode conventionssaranyatdr
 

What's hot (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
 

Viewers also liked

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 EngineDavid Chandler
 
Introdução ao OpenLayers
Introdução ao OpenLayersIntrodução ao OpenLayers
Introdução ao OpenLayersFernando 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 JavaJoachim Van der Auwera
 
Geospatial for Java
Geospatial for JavaGeospatial for Java
Geospatial for JavaJody Garnett
 
Integrating PostGIS in Web Applications
Integrating PostGIS in Web ApplicationsIntegrating PostGIS in Web Applications
Integrating PostGIS in Web ApplicationsCommand Prompt., Inc
 

Viewers also liked (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
 

Similar to Algorithm hierarchy

Analysis of Algorithms
Analysis of AlgorithmsAnalysis of Algorithms
Analysis of AlgorithmsAmna Saeed
 
Lecture 01-2.ppt
Lecture 01-2.pptLecture 01-2.ppt
Lecture 01-2.pptRaoHamza24
 
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.pptxrajesshs31r
 
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.pptxrajesshs31r
 
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 SaghafiProfessor Lili Saghafi
 
VCE Unit 01 (2).pptx
VCE Unit 01 (2).pptxVCE Unit 01 (2).pptx
VCE Unit 01 (2).pptxskilljiolms
 
An introduction to Competitive Programming
An introduction to Competitive ProgrammingAn introduction to Competitive Programming
An introduction to Competitive ProgrammingGaurav Agarwal
 
Data oriented design and c++
Data oriented design and c++Data oriented design and c++
Data oriented design and c++Mike Acton
 
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.docxbunyansaturnina
 
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...DrkhanchanaR
 
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.pdfishan743441
 
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.pdfAsst.prof M.Gokilavani
 

Similar to 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
 

Recently uploaded

Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 

Recently uploaded (20)

Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 

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.