亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

leecode 解題總結:40 Combination Sum II

2019-11-10 18:41:44
字體:
來源:轉載
供稿:網友
#include <iostream>#include <stdio.h>#include <vector>#include <map>#include <algorithm>using namespace std;/*問題:Given a collection of candidate numbers (C) and a target number (T), find all unique combinations in C where the candidate numbers sums to T.Each number in C may only be used once in the combination.Note:All numbers (including target) will be positive integers.The solution set must not contain duplicate combinations.For example, given candidate set [10, 1, 2, 7, 6, 1, 5] and target 8, A solution set is: [  [1, 7],  [1, 2, 5],  [2, 6],  [1, 1, 6]]分析:此題在遞歸求解的過程中必須確保每個數字出現的次數不能超過實際出現的次數只需要修改for循環中i * candidate <= target中的條件為 i <= numToTimes[i] && i * candidate <= target輸入:7(數組元素個數) 8(目標值)10 1 2 7 6 1 5輸出:1 7,1 2 5,2 6,1 1 6關鍵:1 用回溯來做,如果目標值為0,就將結果壓入結果集。回溯適用于求解含有多個結果的集合回溯基本格式:嘗試某一數值遞歸清空嘗試的數值與可重復累加和的區別在于:可重復累加和一直嘗試當前值,直到目標值 < 當前候選值,則選取下一個候選值。  如果目標值>0,繼續嘗試下一個值,嘗試過后,彈出之前壓入的值	//如果目標變成0,說明得到結果,將結果加入結果集	if(0 == target)	{		results.push_back(path);		return;	}			//此種情況不可能	if(target < 0)	{		return;	}	int size = candidates.size();	for(int i = cur ; i < size ; i++)	{		//防止添加重復元素,如果當前元素和之前元素重復,就跳過		if(i > cur && candidates.at(i) == candidates.at(i-1))		{			continue;		}		path.push_back(candidates.at(i));		//嘗試下一個候選值		combineSum(candidates , target - candidates.at(i) , i + 1 , path , results);		//回溯		path.pop_back();	}2 求組合值為sum的解法 void combinationSum(std::vector<int> &candidates, int target, std::vector<std::vector<int> > &res, std::vector<int> &combination, int begin) {		if  (!target) {			res.push_back(combination);			return;		}        for (int i = begin; i != candidates.size() && target >= candidates[i]; ++i) {            combination.push_back(candidates[i]);            combinationSum(candidates, target - candidates[i], res, combination, i);            combination.pop_back();        }	}*/class Solution {public:	//嘗試用擺放來做,問題轉化為遞歸問題	void combineSum(vector<int>& candidates, int target , int cur , vector<int> path , vector< vector<int> >& results)	{		vector< vector<int> > totalResults;		if(candidates.empty())		{			return ;		}		//如果目標變成0,說明得到結果,將結果加入結果集		if(0 == target)		{			results.push_back(path);			return;		}				//此種情況不可能		if(target < 0)		{			return;		}		int size = candidates.size();		for(int i = cur ; i < size ; i++)		{			//防止添加重復元素,如果當前元素和之前元素重復,就跳過			if(i > cur && candidates.at(i) == candidates.at(i-1))			{				continue;			}			path.push_back(candidates.at(i));			//嘗試下一個候選值			combineSum(candidates , target - candidates.at(i) , i + 1 , path , results);			//回溯			path.pop_back();		}	}    vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {		vector<vector<int>> results;		if(candidates.empty())		{			return results;		}        //必須確保候選值從大到小排序		sort(candidates.begin() , candidates.end());		vector<int> path;		combineSum(candidates, target , 0 , path , results);		return results;    }};void PRint(vector<vector<int>>& results){	if(results.empty())	{		cout << "no result" << endl;		return;	}	int size = results.size();	for(int i = 0 ; i < size ; i++)	{		int len = results.at(i).size();		for(int j = 0 ; j < len ; j++)		{			cout << results.at(i).at(j) << " ";		}		cout << ",";	}	cout << endl;}void process(){	int num;	vector<int> nums;	int target;	int value;	Solution solution;	vector< vector<int> > results;	while(cin >> num >> target)	{		nums.clear();		for(int i = 0 ; i < num ; i++)		{			cin >> value;			nums.push_back(value);		}		results = solution.combinationSum2(nums , target);		print(results);	}}int main(int argc , char* argv[]){	process();	getchar();	return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人综合一区二区三区| 国产精品专区h在线观看| 久久亚洲欧美日韩精品专区| 国内外成人免费激情在线视频| 国产精品久久久久久久久久久久久久| 国产乱肥老妇国产一区二| 国产欧美日韩免费看aⅴ视频| 亚洲人成人99网站| 日韩av在线免费| 这里精品视频免费| 色哟哟网站入口亚洲精品| 久久影院模特热| 日韩欧美国产激情| 亚洲另类xxxx| 丝袜美腿亚洲一区二区| 激情久久av一区av二区av三区| xvideos成人免费中文版| 啊v视频在线一区二区三区| 国产精品福利片| 亚洲色无码播放| 欧美性20hd另类| 亚洲美女动态图120秒| 国产免费一区二区三区在线观看| 亚洲女成人图区| 久久久噜噜噜久久中文字免| 一区二区三区回区在观看免费视频| 亚洲免费电影一区| 精品国产91久久久久久| 国产精品都在这里| www.精品av.com| 亚洲美女在线观看| 欧美另类在线播放| 26uuu另类亚洲欧美日本老年| 久久久av网站| 精品国产欧美一区二区五十路| 国产精品视频公开费视频| 国产亚洲精品一区二555| xxxxxxxxx欧美| 欧美激情亚洲国产| 欧美日韩国产丝袜美女| 欧美成人免费网| 欧美多人乱p欧美4p久久| 国产suv精品一区二区| 欧美电影院免费观看| 一区二区三区四区视频| 亚洲欧美另类在线观看| 操人视频在线观看欧美| 日韩中文字幕在线精品| 国产在线a不卡| 夜夜躁日日躁狠狠久久88av| 国产精品夜间视频香蕉| 欧美日韩一区二区免费视频| 91久久精品国产| 97视频网站入口| 久久久精品中文字幕| 91精品国产色综合久久不卡98口| 国产精品视频免费在线观看| 亚洲欧美国产va在线影院| 亚洲国产精品小视频| 久久久久久久影院| 国产成人午夜视频网址| 成人av.网址在线网站| 日韩女在线观看| 日韩av手机在线| 亚洲人永久免费| 欧美成人一区在线| 不卡在线观看电视剧完整版| 欧美最猛性xxxxx免费| 久久99热精品这里久久精品| 亚洲福利视频专区| 国产精品99久久久久久白浆小说| 日韩av在线直播| 精品美女久久久久久免费| 国产91精品在线播放| 欧美日韩一二三四五区| 国产欧美一区二区白浆黑人| 国产精品入口免费视频一| 久久视频在线免费观看| 成人精品aaaa网站| 亚洲国产欧美精品| 色偷偷偷亚洲综合网另类| 视频在线一区二区| 久久成人国产精品| 91精品久久久久久久久中文字幕| 国产精品入口免费视频一| 欧美一级在线亚洲天堂| 亚洲福利视频专区| 欧美大片免费观看在线观看网站推荐| 国产精品久久久久77777| 日韩成人在线视频网站| 久久露脸国产精品| 日韩av电影免费观看高清| 45www国产精品网站| 久久艳片www.17c.com| 久久99久久99精品中文字幕| 欧美在线播放视频| 永久免费精品影视网站| 国产成人av网| 久久综合伊人77777尤物| 55夜色66夜色国产精品视频| 欧美精品videofree1080p| 欧美成人四级hd版| 亚洲天堂精品在线| 国产精品美女在线| 精品亚洲精品福利线在观看| 国产日韩在线亚洲字幕中文| 色狠狠av一区二区三区香蕉蜜桃| 疯狂蹂躏欧美一区二区精品| 日韩在线视频免费观看高清中文| 中文字幕日本欧美| 国产精品网站视频| 欧美精品videos性欧美| 91九色在线视频| 欧美性在线观看| 欧美视频二区36p| 久久国产精品久久久久| 日韩欧美在线免费观看| 91精品国产91久久久久久| 美女扒开尿口让男人操亚洲视频网站| 亚洲人成电影网站色www| 在线视频日韩精品| 日韩欧美中文第一页| 91av在线视频观看| 久久成人在线视频| 日本视频久久久| 亚洲欧洲在线观看| 欧美天天综合色影久久精品| 日本久久久久久| 国产精品午夜一区二区欲梦| 日本成人免费在线| 国产69精品久久久久9| 色综合久久天天综线观看| 日本久久久久久久| 国产一区二区丝袜高跟鞋图片| 国产日韩在线免费| 亚洲天堂开心观看| 亚洲天堂成人在线视频| 色综合视频网站| 亚洲精品成人免费| 在线精品高清中文字幕| 亚洲第一免费播放区| 日本19禁啪啪免费观看www| 久久99国产精品自在自在app| 亚洲国产精品久久久久久| 91精品国产91久久久久久久久| 久久网福利资源网站| 国产精品夜间视频香蕉| 91高清在线免费观看| 2019中文字幕免费视频| 欧美激情一区二区三级高清视频| 亚洲第一网中文字幕| 国产成人拍精品视频午夜网站| 91地址最新发布| 国色天香2019中文字幕在线观看| 黄色91在线观看| 久久久久久久香蕉网| 亚洲奶大毛多的老太婆| 韩剧1988免费观看全集| 成人激情视频网| 亚洲色图综合久久| 91在线|亚洲| 欧美成人午夜剧场免费观看| 精品国产精品自拍| 久久精品视频中文字幕|