摘要: 总结: 1什么时候使用二分法? 当要求使用比O(n)还要低的时间复杂度时,只能是O(lgn)。通常对应二分法和倍增法。 2二分法模板: 首先看一个经典的二分查找问题: 在一个排序数组中找一个数,返回该数出现的任意位置,如果不存在,返回-1 样例  给出数组 [1, 2, 2, 4, 5, 5]. 阅读全文
posted @ 2016-09-04 15:12 coldyan 阅读(357) 评论(0) 推荐(0) 编辑
摘要: 总结:什么时候用回溯法? 如果题目要求求出所有满足条件的解,一般来说是用回溯法,记住回溯法的模板,对不同的题目只需要修改这个条件即可。 回溯法的本质是在问题的解空间树上做深度优先搜索(DFS)。这节课主要讲了四个排列组合的问题,分别是子集,带重复元素的子集,全排列,带重复元素的全排列。本文分析求子集 阅读全文
posted @ 2016-09-04 14:16 coldyan 阅读(347) 评论(0) 推荐(0) 编辑