算法与数据结构
文章平均质量分 50
quick刀斩乱麻
follow for more
展开
-
Back Tracking
回溯法是一种可以找出所有(或一部分)解的一般性算法,它采用试错的思想,尝试分步的去解决问题。在分步解决问题的过程中,当它通过尝试发现现有的分步答案不能得到有效的正确的解答的时候,它将取消上一步甚至是上几步的计算,再通过其它的可能的分步解答再次尝试寻找问题的答案(约束补偿)。回溯法通常用递归的方法来实现。回溯法试暴力搜索法中的一种,然而在适用的情况下,回溯通常比暴力枚举所有完整的candidates要快得多,since it can eliminate many candidates with a原创 2021-01-16 15:19:32 · 108 阅读 · 0 评论 -
Divide and Conquer
求众数:(leetcode 169)class Solution: def majorityElement(self, nums: List[int]) -> int: def dnc(low, high): if low == high: return nums[low] mid = low + (high - low) // 2原创 2020-10-09 18:33:08 · 124 阅读 · 0 评论 -
Dynamical Programming
Optimal Substructure: The optimal solution to an instance of the problem contains optimal solutions of some subproblemsOverlapping Subproblems: Different branches of the computation of an optimal solution require to compute the same subproblem sever.原创 2020-09-24 14:20:34 · 146 阅读 · 0 评论