# Problem Solving Technique

- 章节名：Problem Solving Technique
- 2012-12-23 16:46:47

Problem Solving Technique

1, Divide-and-conquer Can you divide the problem into two or more smaller independent subproblems and solve the original problem using solutions to the subproblems? 2, Recursion, dynamic programmmg If you have access to solutions for smaller in stances of a given problem, can you easily construct a solution to the problem? 3, Case analysis Can you split the input/execution into a number of cases and solve each case in isolation? 4, Generalization Is there a problem that subsumes your problem and is easier to solve? 5, Data-structures Is there a data-structure that directly maps to the given problem? 6, Iterative refinement Most problems can be solved using a bruteforce approach. Can you formalize such a solution and improve upon it? 7, Small examples Can you find a solution to small concrete instances of the problem and then build a solution that can be generalized to arbitrary instances? 8, Reduction Can you use a problem with a known solution as a subroutine? 9, Graph modeling Can you describe your problem using a graph and solve it using an existing algorithm? 10, Write an equation Can you express relationships in your problem in the form of equations (or inequalities)? 11, Auxiliary elements Can you add some new element to your problem to get closer to a solution? 12, Variation Can you solve a slightly different problem and map its solution to your problem? 13, Parallelism Can you decompose your problem into subproblems that can be solved independently on different machines? 14, Caching Can you store some of your computation and look it up later to save work? 15, Symmetry Is there symmetry in the input space or solution space that can be explored?

14人阅读

## 说明 · · · · · ·

表示其中内容是对原文的摘抄