Recently Springer made some good books on maths free to download.
Competitive programming strategies are useful for many data science interviews and they help to improve your maths foundations. There are not many books on this subject (although there are many good websites and YouTube resources).
So, I hope you find this book useful
From the book
The book contents are
Programming Techniques
Language Features
Input and Output
Working with Numbers
Shortening Code
Recursive Algorithms
Generating Subsets
Generating Permutations
Backtracking
Bit Manipulation
Bit Operations
Representing Sets
Efficiency
Time Complexity
Calculation Rules
Common Time Complexities
Estimating Efficiency
Formal Definitions
Examples
Maximum Subarray Sum
Two Queens Problem
Sorting and Searching
Sorting Algorithms
Bubble Sort
vii
Merge Sort
Sorting Lower Bound
Counting Sort
Sorting in Practice
Solving Problems by Sorting
Sweep Line Algorithms
Scheduling Events
Tasks and Deadlines
Binary Search
Implementing the Search
Finding Optimal Solutions
Data Structures
Dynamic Arrays
Vectors
Iterators and Ranges
Other Structures
Set Structures
Sets and Multisets
Maps
Priority Queues
Policy-Based Sets
Experiments
Set Versus Sorting
Map Versus Array
Priority Queue Versus Multiset
Dynamic Programming
Basic Concepts
When Greedy Fails
Finding an Optimal Solution
Counting Solutions
Further Examples
Longest Increasing Subsequence
Paths in a Grid
Knapsack Problems
From Permutations to Subsets
Counting Tilings
Graph Algorithms
Basics of Graphs
Graph Terminology
Graph Representation
Graph Traversal
Depth-First Search
viii Contents
Breadth-First Search
Applications
Shortest Paths
Bellman–Ford Algorithm
Dijkstra’s Algorithm
Floyd–Warshall Algorithm
Directed Acyclic Graphs
Topological Sorting
Dynamic Programming
Successor Graphs
Finding Successors
Cycle Detection
Minimum Spanning Trees
Kruskal’s Algorithm
Union-Find Structure
Prim’s Algorithm
Algorithm Design Topics
Bit-Parallel Algorithms
Hamming Distances
Counting Subgrids
Reachability in Graphs
Amortized Analysis
Two Pointers Method
Nearest Smaller Elements
Sliding Window Minimum
Finding Minimum Values
Ternary Search
Convex Functions
Minimizing Sums
Range Queries
Queries on Static Arrays
Sum Queries
Minimum Queries
Tree Structures
Binary Indexed Trees
Segment Trees
Additional Techniques
Tree Algorithms
Basic Techniques
Tree Traversal
Calculating Diameters
All Longest Paths
Contents ix
Tree Queries
Finding Ancestors
Subtrees and Paths
Lowest Common Ancestors
Merging Data Structures
Advanced Techniques
Centroid Decomposition
Heavy-Light Decomposition
Mathematics
Number Theory
Primes and Factors
Sieve of Eratosthenes
Euclid’s Algorithm
Modular Exponentiation
Euler’s Theorem
Solving Equations
Combinatorics
Binomial Coefficients
Catalan Numbers
Inclusion-Exclusion
Burnside’s Lemma
Cayley’s Formula
Matrices
Matrix Operations
Linear Recurrences
Graphs and Matrices
Gaussian Elimination
Probability
Working with Events
Random Variables
Markov Chains
Randomized Algorithms
Game Theory
Game States
Nim Game
Sprague–Grundy Theorem
Advanced Graph Algorithms
Strong Connectivity
Kosaraju’s Algorithm
SAT Problem
Complete Paths
Eulerian Paths
x Contents
Hamiltonian Paths
Applications
Maximum Flows
Ford–Fulkerson Algorithm
Disjoint Paths
Maximum Matchings
Path Covers
Depth-First Search Trees
Biconnectivity
Eulerian Subgraphs
Geometry
Geometric Techniques
Complex Numbers
Points and Lines
Polygon Area
Distance Functions
Sweep Line Algorithms
Intersection Points
Closest Pair Problem
Convex Hull Problem
String Algorithms
Basic Topics
Trie Structure
Dynamic Programming
String Hashing
Polynomial Hashing
Applications
Collisions and Parameters
Z-Algorithm
Constructing the Z-Array
Applications
Suffix Arrays
Prefix Doubling Method
Finding Patterns
LCP Arrays
Additional Topics
Square Root Techniques
Data Structures
Subalgorithms
Integer Partitions
Mo’s Algorithm
Contents xi
Segment Trees Revisited
Lazy Propagation
Dynamic Trees
Data Structures in Nodes
Two-Dimensional Trees
Treaps
Splitting and Merging
Implementation
Additional Techniques
Dynamic Programming Optimization
Convex Hull Trick
Divide and Conquer Optimization
Knuth’s Optimization
Miscellaneous
Meet in the Middle
Counting Subsets
Parallel Binary Search
Dynamic Connectivity
Appendix A: Mathematical Background
link to download https://link.springer.com/book/10.1007/978-3-319-72547-5
Comment
I am not able to download it. The link takes me to a link where the book is for sale only.
It works. Thank you.
https://link.springer.com/book/10.1007/978-3-319-72547-5 - This is the link from where I downloaded. @kwaiLeung
Where can I click and download this book? Thank you.
Posted 12 April 2021
© 2021 TechTarget, Inc.
Powered by
Badges | Report an Issue | Privacy Policy | Terms of Service
Most Popular Content on DSC
To not miss this type of content in the future, subscribe to our newsletter.
Other popular resources
Archives: 2008-2014 | 2015-2016 | 2017-2019 | Book 1 | Book 2 | More
Most popular articles
You need to be a member of Data Science Central to add comments!
Join Data Science Central