Divde & Conquer
def divide_conquer(problem, param1,param2,...):
# recursion terminator
if problem is None:
print_result
return
# prepare data
data = prepare_data(problem)
subproblems = split_problem(problem, data)
# conquer subproblems
subresult1 = self.divide_conquer(subproblems[0], p1, ...)
subresult2 = self.divide_conquer(subproblems[1], p1, ...)
subresult3 = self.divide_conquer(subproblems[2], p1, ...)
...
# progress and generate the final result
result = process_result(subresult1, subresult2, subresult3, ...)
实战题⽬目
- https://leetcode.com/problems/powx-n/description/
- https://leetcode.com/problems/majority-element/description/
- https://leetcode.com/problems/maximum-subarray/description/
- https://leetcode.com/problems/valid-anagram/#/description
- https://leetcode.com/problems/find-all-anagrams-in-a-string/#/description 6. https://leetcode.com/problems/anagrams/#/description