zoukankan      html  css  js  c++  java
  • [leetcode]Combination Sum II

    和上一题差不多

    class Solution {
    public:
        void search(vector<vector<int> >& ans , vector<int>& tmp ,vector<int> &candidates , int target , int sum , int start) {
            if(sum > target) return;
            if(sum == target) {
                ans.push_back(tmp);
                return ;
            }
            int prev = -1; 
            for(int i = start ; i < candidates.size() ; i++) {
                if(prev == candidates[i]) continue;
                prev = candidates[i];
                tmp.push_back(candidates[i]);
                search(ans,tmp,candidates,target,sum+candidates[i] , i+1);
                tmp.pop_back();
            }
        }
        vector<vector<int> > combinationSum2(vector<int> &candidates, int target) {
            vector<vector<int> > ans;
            vector<int> tmp;
            sort(candidates.begin() , candidates.end());
            search(ans,tmp,candidates,target, 0 , 0);
            return ans;
        }
    };
  • 相关阅读:
    HDU_5057_分块
    HYSBZ_2002_分块
    HDU_1166_树状数组
    HDU_5692_dfs序+线段树
    多重背包
    二进制中一的个数
    康托展开
    vector, map, queue,set常用总结
    错误票据
    高精度计算
  • 原文地址:https://www.cnblogs.com/x1957/p/3513599.html
Copyright © 2011-2022 走看看