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

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

leecode 解題總結:39. Combination Sum

2019-11-10 18:45:16
字體:
來源:轉載
供稿:網友
#include <iostream>#include <stdio.h>#include <vector>#include <algorithm>using namespace std;/*問題:Given a set of candidate numbers (C) (without duplicates) and a target number (T), find all unique combinations in C where the candidate numbers sums to T.The same repeated number may be chosen from C unlimited number of times.Note:All numbers (including target) will be positive integers.The solution set must not contain duplicate combinations.For example, given candidate set [2, 3, 6, 7] and target 7, 分析:這是程序員面試金典的一道題目。求組成數的所有組合。應該是用遞歸做。之前是n分的硬幣用25,10,5,1的硬幣表示分別枚舉i * denom <= total時,i從0到k的情況,然后遞歸做2 3 6 7此題應該也是用這種方式輸入:4(數組元素個數) 7(目標值)2 3 6 74 62 3 6 72 72 6輸出:7,2 2 36,3 3,2 2 2no result關鍵:1 前半部分求解結果,前半部分 與 后半部分結果 進行笛卡爾積 即為最終結果int curCandidate = candidates.at(curCandidateIndex);vector<vector<int>> results;//后半部分遞歸求解結果vector<int> result;//前半部分求解結果,前半部分 與 后半部分結果 進行笛卡爾積 即為最終結果for(int i = 0 ; i * curCandidate <= target ; i++){	result.clear();//清空上一次結果	for(int j = 0 ; j < i ; j++)	{		result.push_back(curCandidate);	}	results = combineSum(candidates , target -  i * curCandidate , curCandidateIndex + 1 );//得到多個結果需要和當前結果進行笛卡爾積拼接	int size = results.size();	//進行笛卡爾積拼接	for(int k = 0 ; k < size ; k++)	{		results.at(k).insert(results.at(k).end() , result.begin() , result.end());//插入到后面,前面是最小部分		totalResults.push_back(results.at(k));	}	//如果當前直接等于結果集i * curCandidate = target,直接壓入結果中	if(i * curCandidate == target)	{		totalResults.push_back(result);	}}return totalResults;*/bool compare(int a, int b){	return a > b;}class Solution {public:	vector<vector<int>> combineSum(vector<int>& candidates, int target , int curCandidateIndex)	{		vector< vector<int> > totalResults;		if(candidates.empty() || target <= 0 || curCandidateIndex < 0 || curCandidateIndex >= candidates.size())		{			return totalResults;		}		int curCandidate = candidates.at(curCandidateIndex);		vector<vector<int>> results;//后半部分遞歸求解結果		vector<int> result;//前半部分求解結果,前半部分 與 后半部分結果 進行笛卡爾積 即為最終結果		for(int i = 0 ; i * curCandidate <= target ; i++)		{			result.clear();//清空上一次結果			for(int j = 0 ; j < i ; j++)			{				result.push_back(curCandidate);			}			results = combineSum(candidates , target -  i * curCandidate , curCandidateIndex + 1 );//得到多個結果需要和當前結果進行笛卡爾積拼接			int size = results.size();			//進行笛卡爾積拼接			for(int k = 0 ; k < size ; k++)			{				results.at(k).insert(results.at(k).end() , result.begin() , result.end());//插入到后面,前面是最小部分				totalResults.push_back(results.at(k));			}			//如果當前直接等于結果集i * curCandidate = target,直接壓入結果中			if(i * curCandidate == target)			{				totalResults.push_back(result);			}		}		return totalResults;	}    vector<vector<int>> combinationSum(vector<int>& candidates, int target) {        //必須確保候選值從大到小排序		sort(candidates.begin() , candidates.end() , compare );		int curCandidateIndex = 0;		vector<vector<int>> results = combineSum(candidates, target , curCandidateIndex);		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.combinationSum(nums , target);		print(results);	}}int main(int argc , char* argv[]){	process();	getchar();	return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美麻豆久久久久久中文| 777777777亚洲妇女| 久热精品视频在线观看| 久久精品国亚洲| 精品动漫一区二区| 欧美日韩激情网| 国产欧美亚洲精品| 国产一区二区精品丝袜| 日韩精品小视频| 神马国产精品影院av| 国模吧一区二区三区| 欧美性猛交丰臀xxxxx网站| 国产精品9999| 亚洲成人性视频| 一本色道久久综合狠狠躁篇的优点| 成人a级免费视频| 北条麻妃99精品青青久久| 久久久久久网站| 美乳少妇欧美精品| 欧美精品成人91久久久久久久| 亚洲第一区在线观看| 北条麻妃一区二区在线观看| 亚洲人成伊人成综合网久久久| 91久久久久久久久久| 精品呦交小u女在线| 在线日韩第一页| 精品毛片三在线观看| 国产成人精品亚洲精品| 色天天综合狠狠色| 久久久久久久久久久国产| 欧美插天视频在线播放| 国产经典一区二区| 国产精品视频久| 中文字幕在线国产精品| 欧美黑人性生活视频| 91性高湖久久久久久久久_久久99| 日韩免费不卡av| 97久久久久久| 亚洲福利视频免费观看| 国产精品入口夜色视频大尺度| 日韩精品免费在线视频| 亚洲色图日韩av| 在线观看国产精品淫| 精品免费在线观看| 成人免费观看网址| 91影视免费在线观看| 一区二区三区国产在线观看| 久久久久北条麻妃免费看| 中文字幕精品在线| 欧美成人午夜激情| 国产热re99久久6国产精品| 欧美日韩色婷婷| 国产日韩精品一区二区| 亚洲美女在线观看| 中文字幕亚洲国产| 一区二区三区回区在观看免费视频| 日韩欧美国产网站| 精品视频偷偷看在线观看| 欧美性猛交xxxx免费看漫画| 国产精品亚洲自拍| 欧美丝袜一区二区| 亚洲欧美另类国产| 国产精品日韩在线观看| 日韩欧美高清视频| 国产精品电影久久久久电影网| 欧美电影免费观看电视剧大全| 欧美精品做受xxx性少妇| 国产精品美女呻吟| 日韩国产精品亚洲а∨天堂免| 欧美精品激情在线观看| 国产欧美亚洲视频| 国产精品久久不能| 亚洲成人精品久久久| 国产精品精品国产| 亚洲亚裔videos黑人hd| 国产亚洲人成网站在线观看| 欧美午夜视频在线观看| 亚洲韩国日本中文字幕| 欧美性感美女h网站在线观看免费| 亚洲欧美制服综合另类| 欧美激情一区二区三区在线视频观看| 日韩成人在线视频| 亚洲欧洲中文天堂| 视频在线观看99| 欧美成人精品一区| 日韩欧美在线第一页| 欧美成人黄色小视频| 欧美激情国产日韩精品一区18| 日韩少妇与小伙激情| 亚洲性日韩精品一区二区| www国产亚洲精品久久网站| 92福利视频午夜1000合集在线观看| 日韩中文字幕在线视频播放| 亚洲国产精品网站| 欧美亚洲成人网| 久久艳片www.17c.com| 亚洲激情国产精品| 色偷偷噜噜噜亚洲男人| 国产欧洲精品视频| 91高潮精品免费porn| 欧美成人午夜激情视频| 97在线视频免费播放| 91精品国产乱码久久久久久蜜臀| 亚洲自拍高清视频网站| 成人福利网站在线观看| 欧美日韩一区免费| 欧美性jizz18性欧美| 欧美日韩国产成人高清视频| 国产精品久久久久久久av电影| 中文字幕国产日韩| 欧美在线精品免播放器视频| 日韩欧美国产高清91| 日韩精品在线观看一区| 欧美孕妇性xx| 综合av色偷偷网| 中文字幕亚洲欧美一区二区三区| 日日骚久久av| 中国日韩欧美久久久久久久久| 亚洲色图第三页| 九九视频这里只有精品| 亚洲美女福利视频网站| 日韩在线一区二区三区免费视频| 国产精品日韩在线播放| 亚洲国产精品久久久久秋霞不卡| 国产日韩欧美夫妻视频在线观看| 琪琪亚洲精品午夜在线| 91精品视频免费观看| 国产精品爱啪在线线免费观看| 亚洲va久久久噜噜噜| 清纯唯美亚洲综合| 欧美电影在线免费观看网站| 热re99久久精品国产66热| 一区二区三区无码高清视频| 美日韩在线视频| 亚洲人永久免费| 亚洲精品国产电影| 亚洲高清一二三区| 国产成人jvid在线播放| 一区二区三区视频在线| 日韩av综合网站| 国产91精品久久久| 成人网页在线免费观看| 影音先锋日韩有码| 久久6免费高清热精品| 亚洲色图偷窥自拍| 久久久伊人日本| 日韩欧美一区二区在线| 中文字幕亚洲一区二区三区五十路| 亚洲精品999| 精品亚洲精品福利线在观看| 国产98色在线| 国产欧美最新羞羞视频在线观看| 欧美激情在线狂野欧美精品| 4438全国成人免费| 久久久久久久久久久国产| 精品女厕一区二区三区| 国产精品久久久久国产a级| 操人视频在线观看欧美| 国产精品视频999| 中文字幕欧美日韩| 久久久亚洲影院| 中文欧美在线视频| 不卡在线观看电视剧完整版| 色偷偷亚洲男人天堂|