摘要: 深感自己智商不足啊,看了好久才看明白。 void dfs(int n, int k, int start, int cur, vector<vector<int>> &result, vector<int> &path) { if (cur == k) { result.push_back(path 阅读全文
posted @ 2016-07-16 19:15 牧马人夏峥 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 这题不好想,可参考:http://www.cnblogs.com/felixfang/p/3775712.html,思路很清楚。同理这种解法也满足有重复元素的情况。 vector<vector<int>> subsets( vector<int> &S) { vector<vector<int>> 阅读全文
posted @ 2016-07-16 15:49 牧马人夏峥 阅读(127) 评论(0) 推荐(0) 编辑
摘要: bool searchMatrix(const vector<vector<int>> &matrix, int target) { int m = matrix.size();//行 int n = matrix.front.size(); int first = 0; int last = m* 阅读全文
posted @ 2016-07-16 14:43 牧马人夏峥 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 本质上是lower_bound,注意其与upper_bound之间的差别 int searchInsert(int A[], int n, int target) { //本质上实现lower_bound函数 return lower_bound(A, A + n, target) - A; } t 阅读全文
posted @ 2016-07-16 10:10 牧马人夏峥 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 在已经排好序的数组中查找,可用二分查找法效率更高,这里使用STL更方便。 vector<int> searchRange(int A[], int n, int target) { int l = distance(A, lower_bound(A, A + n, target)); int r = 阅读全文
posted @ 2016-07-16 08:59 牧马人夏峥 阅读(116) 评论(0) 推荐(0) 编辑