Freshly Printed - allow 4 days lead
Competitive Programming in Python
128 Algorithms to Develop your Coding Skills
All the algorithms, proofs, and implementations in Python you need to know for tech job interviews and coding competitions.
Christoph Dürr (Author), Jill-Jênn Vie (Author), Greg Gibbons (Translated by), Danièle Gibbons (Translated by)
9781108716826, Cambridge University Press
Paperback / softback, published 17 December 2020
264 pages
24.4 x 17 x 1.5 cm, 0.46 kg
'This book guides the reader through a collection of interesting problems, teaching us many ideas that underlie efficient algorithms. The simplicity of Python helps highlight the beauty and accessibility of the ideas. I found it a most enjoyable and engaging book.' Anupam Gupta, Carnegie Mellon University
Want to kill it at your job interview in the tech industry? Want to win that coding competition? Learn all the algorithmic techniques and programming skills you need from two experienced coaches, problem setters, and jurors for coding competitions. The authors highlight the versatility of each algorithm by considering a variety of problems and show how to implement algorithms in simple and efficient code. Readers can expect to master 128 algorithms in Python and discover the right way to tackle a problem and quickly implement a solution of low complexity. Classic problems like Dijkstra's shortest path algorithm and Knuth-Morris-Pratt's string matching algorithm are featured alongside lesser known data structures like Fenwick trees and Knuth's dancing links. The book provides a framework to tackle algorithmic problem solving, including: Definition, Complexity, Applications, Algorithm, Key Information, Implementation, Variants, In Practice, and Problems. Python code included in the book and on the companion website.
1. Introduction
2. Character strings
3. Sequences
4. Arrays
5. Intervals
6. Graphs
7. Cycles in graphs
8. Shortest paths
9. Matching and flows
10. Trees
11. Sets
12. Points and polygons
13. Rectangles
14. Numbers and matrices
15. Exhaustive search
16. Conclusion.
Subject Areas: Mathematical theory of computation [UYA], Software Engineering [UMZ], Algorithms & data structures [UMB], Computer programming / software development [UM], Careers guidance [JNR], Coding theory & cryptology [GPJ]