Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Cover Page
Title Page
Copyright Page
Dedication
About the Author
About the Technical Reviewer
BRIEF CONTENTS
CONTENTS IN DETAIL
FOREWORD
ACKNOWLEDGMENTS
INTRODUCTION
Online Resources
Who This Book Is For
The Programming Language
Topics
Judges
Anatomy of a Problem Description
Problem: Food Lines
Notes
1 HASH TABLES
Problem 1: Unique Snowflakes
Hash Tables
Problem 2: Compound Words
Problem 3: Spelling Check: Deleting a Letter
Summary
Notes
2 TREES AND RECURSION
Problem 1: Halloween Haul
Why Use Recursion?
Problem 2: Descendant Distance
Summary
Notes
3 MEMOIZATION AND DYNAMIC PROGRAMMING
Problem 1: Burger Fervor
Memoization and Dynamic Programming
Problem 2: Moneygrubbers
Problem 3: Hockey Rivalry
Problem 4: Ways to Pass
Summary
Notes
4 GRAPHS AND BREADTH-FIRST SEARCH
Problem 1: Knight Chase
Graphs and BFS
Problem 2: Rope Climb
Problem 3: Book Translation
Summary
Notes
5 SHORTEST PATHS IN WEIGHTED GRAPHS
Problem 1: Mice Maze
Dijkstra’s Algorithm
Problem 2: Grandma Planner
Summary
Notes
6 BINARY SEARCH
Problem 1: Feeding Ants
Binary Search
Problem 2: River Jump
Problem 3: Living Quality
Problem 4: Cave Doors
Summary
Notes
7 HEAPS AND SEGMENT TREES
Problem 1: Supermarket Promotion
Heaps
Problem 2: Building Treaps
Segment Trees
Problem 3: Two Sum
Summary
Notes
8 UNION-FIND
Problem 1: Social Network
Union-Find
Problem 2: Friends and Enemies
Problem 3: Drawer Chore
Summary
Notes
AFTERWORD
A ALGORITHM RUNTIME
The Case for Timing ... and Something Else
Big O Notation
B BECAUSE I CAN’T RESIST
Unique Snowflakes: Implicit Linked Lists
Burger Fervor: Reconstructing a Solution
Knight Chase: Encoding Moves
Dijkstra’s Algorithm: Using a Heap
Compressing Path Compression
C PROBLEM CREDITS
INDEX
← Prev
Back
Next →
← Prev
Back
Next →