Here are some ideas you can make a 10-30 minute talk around. You can talk about anything in the realm of these topics. Remember, you are not limited to the below, these are just inspirations.
Feel free to do a pull request and add any topics you want to learn about.
- Implement a rate limiter
- Employee Scheduling: What are the optimal ways of assigning workers to shifts?
- Job scheduling: How do you efficiently schedule threads to do work in parallel where the ordering of the work also matter?
How to design/build a:
- parking lot
- tic tac toe app
- distributed key/value store
- taxi-hailing app
- Twitch/YouTube
- URL shortening service
- Google Maps
- chat server
- LRU cache
- Strings
- Knuth-Morris-Pratt algorithm
- Implement a suffix tree
- Linked List
- Find if the linked list is circular
- Arrays
- City Skyline: You are given a set of n rectangles in no particular order. They have varying widths and heights, but their bottom edges are collinear, so that they look like buildings on a skyline. For each rectangle, you’re given the x position of the left edge, the x position of the right edge, and the height. Your task is to draw an outline around the set of rectangles so that you can see what the skyline would look like when silhouetted at night.
- Graphs
- Detecting a cycle in a graph
- Trees
- Merge two binary search trees
- Sorting
- Merge sort
- Nuts and Bolts: Given a set of n nuts of different sizes and n bolts of different sizes. There is a one-one mapping between nuts and bolts. Comparison of a nut to another nut or a bolt to another bolt is not allowed. It means nut can only be compared with bolt and bolt can only be compared with nut to see which one is bigger/smaller.
- Recursion
- N-Queens: How can N queens be placed on an NxN chessboard so that no two of them attack each other?
- Tower of Hanoi: You are given a set of three pegs and n disks, with each disk a different size. Let's name the pegs A, B, and C, and let's number the disks from 1, the smallest disk, to n, the largest disk. At the outset, all n disks are on peg A, in order of decreasing size from bottom to top, so that disk n is on the bottom and disk 1 is on the top. The goal is to move all n disks from peg A to peg B.
- Dynamic Programming
- Coin Change: You are working at the cash counter at a fun-fair, and you have different types of coins available to you in infinite quantities. The value of each coin is already given. Can you determine the number of ways of making change for a particular number of units using the given types of coins?
- Knapsack: Given a set of items, each with a weight and a value, determine the number of each item to include in a collection so that the total weight is less than or equal to a given limit and the total value is as large as possible.