You are on page 1of 7

Your Skill Set as of Today (Week 01/02)

Your Response Score

Never heard of it before 1
Heard of it but do not know the details 2
Know it, but have not code/use it 3
Can code/use it, but not very confident to do it fast 4
Can code/use it very fast and confident 5
Task: Give a score in Column B for each Keywords below, see the scoring table above, the graph on the right side will be gradually updated
Data Structures, Algorithms, & Programming Keywords My Subjective Score
Sequence, Selection, Repetition Programming Constructs
Ad Hoc Problem
C++ STL (Standard Template Library)
Java API (Application Programming Interface)
Array/C++ STL vector/Java Vector
Basic Bitmask Techniques
LinkedList/C++ STL list/Java LinkedList 5
Stack/Queue/Deque/C++ STL stack/queue/deque/Java Stack/Queue/Deque 5
Binary Search Tree/C++ STL map/set/Java TreeMap/TreeSet 5
Balanced Binary Search Tree/AVL/Red-Black-Tree (with your own library) 4
Hash Table/Java HashMap (C++11 unordered_map) 4
Heap/PriorityQueue/C++ STL priority_queue/Java PriorityQueue
Union-Find Disjoint Sets
Segment Tree
Binary Indexed (Fenwick) Tree
Bubble Sort 5
Insertion Sort 5
Selection Sort 5
Merge Sort 5
Quick Sort 5
Heap Sort 5
Multi-Field Sorting
Counting Sort
Inversion Index (with Merge Sort) 5
Complete Search/Brute Force/Iterative/Recursive Backtracking
I can solve n-Queens problem up to n 14
State-Space Search
Meet in the Middle (Bidirectional Search)
A* Search (standard one)
Iterative-Deepening Technique (esp IDA*)
Divide and Conquer Principles
Binary Search Techniques
Basic Ideas of Dynamic Programming
Max Sum 1D/2D/etc
Kadane's Algorithm for 1D/2D/etc Max Sum
Longest Increasing Subsequence (LIS)
O(n log k) solution for LIS
Coin Change (CC)
0-1 Knapsack/Subset Sum
Traveling Salesman Problem (TSP)
DP and its relationship with DAG
DP "on Tree"
Longest Common Subsequence (LCS)
String Alignment/Edit Distance
DP Optimization Techniques
Bitonic TSP
Matrix Chain Multiplication (MCM)
Optimal Binary Search Tree (OBST)
Depth First Search (Traversal)
Topological Sort
Finding Connected Components/Flood Fill
Finding Articulation Points/Bridges in O(V+E)
Finding Strongly Connected Components (SCC) in Directed Graph in O(V+E)
Breadth First Search (Traversal)
Kruskal's (Minimum Spanning Tree)
Prim's (Minimum Spanning Tree)
Dijkstra's (Single-Source Shortest Paths)
Bellman Ford's (Single-Source Shortest Paths)
Floyd Warshall's (All-Pairs Shortest Paths)
Ford Fulkerson's/Edmonds Karp's (Max Flow, Min Cut)
Independent and Edge-Disjoint Paths
Min Cost (Max) Flow
Shortest/Longest/All Pairs Paths in Tree
Lowest Common Ancestor (LCA)
Eulerian Graph/Path/Cycle
Chinese Postman Problem
Directed Acyclic Graph (DAG)
Shortest/Longest Path in DAG
Counting Paths in DAG
Min Path Cover in DAG
Bipartite Graph
Max Cardinality Bipartite Matching (MCBM)
Min Vertex Cover in Bipartite Graph (Konig Theorem)
Max Independent Set/Dominating Set in Bipartite Graph
Augmenting Path Algorithm for finding MCBM
Hopcroft Karp's Algorithm for finding MCBM
Kuhn Munkres/Hungarian Algorithm for finding weighted MCBM
Edmond's Matching Algorithm (Blossom Shrinking) for General Matching
Sequences and Number Systems
Big Integer
Base Number
Number Theory
Prime Number Generation: Sieve
Prime Testing
Miller Rabin's Algorithm
Prime Factoring by Trial Division
Pollard Rho's Algorithm
Modified Sieve
GCD/LCM/Euclid's Algorithm
Extended Euclid/Linear Diophantine Equation
Euler Phi
Modulo Arithmetic
Cycle Finding/Tortoise-Hare Algorithm
Divide and Conquer Quick Exponentiation
Matris Power
Linear Algebra/Gaussian Elimination
Backus Naur Form (BNF) Grammar
Knuth Morris Pratt (KMP) String Matching algorithm
Aho Corasick
Suffix Trie Applications
Suffix Tree Applications
Suffix Array Construction O(n log n) and Applications
Geometry Basics, e.g. area, perimeter, Euclidean distance, Trigonometry
Line Segment Intersection
CCW Test
Incircle Test
Area and Perimeter of Arbitrary Polygon
Testing if a Polygon is Convex
Testing if a Point is Inside a Polygon
Cutting a (Convex) Polygon with a Straight Line
Graham Scan (Convex Hull)
Plane Sweep Paradigm
Area or Volume Intersection
Closest Pair Problem
Order Statistics: Linear Time Selection Algorithm
Classic Board games, Card games, Chess, popular AI games
Fedora (Linux) OS environment
Task: Give a score in Column B for each Keywords below, see the scoring table above, the graph on the right side will be gradually updated
1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 65 69 73 77 81 85 89 93
My Skill
93 97 101 105 109 113 117 121 125