
Competitive Programming in Python
128 Algorithms to Develop your Coding Skills
Cambridge University Press
Published on 17. December 2020
Book
Paperback/Softback
264 pages
978-1-108-71682-6 (ISBN)
Description
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.
Reviews / Votes
'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 UniversityMore details
Language
English
Place of publication
Cambridge
United Kingdom
Target group
College/higher education
Professional and scholarly
Product notice
Paperback (trade)
Illustrations
Worked examples or Exercises
Dimensions
Height: 244 mm
Width: 170 mm
Thickness: 15 mm
Weight
465 gr
ISBN-13
978-1-108-71682-6 (9781108716826)
Copyright in bibliographic data and cover images is held by Nielsen Book Services Limited or by the publishers or by their respective licensors: all rights reserved.
Schweitzer Classification
Other editions
Additional editions

E-Book
12/2020
Cambridge University Press
€29.49
Available for download

Christoph Duerr | Jill-Jenn Vie
Competitive Programming in Python
128 Algorithms to Develop your Coding Skills
E-Book
12/2020
Cambridge University Press
€31.49
Available for download
Persons
Christoph Duerr is a senior researcher at the French National Center for Scientific Research (CNRS), affiliated with the Sorbonne University in Paris. After a PhD in 1996 at Paris-Sud University, he worked as for one year as a postdoc at the International Computer Science Institute in Berkeley and one year in the School of Computer Science and Engineering in the Hebrew University of Jerusalem in Israel. He has worked in the fields of quantum computation, discrete tomography, algorithmic game theory, and his current research activity focuses on algorithms and optimisation. From 2007 to 2014, he taught a preparation course for programming contests at the engineering school Ecole Polytechnique, and acts regularly as a problem setter, trainer, or competitor for various coding competitions. In addition, he loves carrot cake. Jill-Jenn Vie is a research scientist at Inria in machine learning. He is an alumni from ENS Paris-Saclay, where he founded the algorithmic club of Paris-Saclay (CAPS) and coached several teams for the International Collegiate Programming Contest (ICPC). He published another book in theoretical computer science to help students prepare for prestigious French competitive exams such as Grandes Ecoles or agregation, and directed a TV show "Blame the Algorithm" about the algorithms that govern our lives. He is part of the advisory board of the French Computer Science Society (SIF), itself a member of the International Federation for Information Processing (IFIP).
Content
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.