数组_组合总和

39.组合总和

描述:给定一个无重复元素的数组candidates 和一个目标数target 找出candidates中所有可以使数字和为target的组合 candidates中的数字可以无限制重复被选取

candidates.sort()
b = []
def temp(yiyou, t, cand):
	if t in cand:
		b.append(yiyou + [t])
	if t > cand[0]:
		for i in range(len(cand)):
			temp(yiyou + [cand[i]], t - cand[i], cand[i:])
temp([], target, candidates)
return b

40. 组合总和2

描述:给定一个数组candidates 和一个目标函数target 找出candidates中所有可以使数字和为target的组合 candidates中的每个数字在每个组合中只能使用一次

candidates.sort()
b = []
def temp(yiyou, t, cand):
	if t == 0 and sorted(yiyou) not in b:
		b.append(sorted(yiyou))
		return
	if cand and t > 0:
		for i in range(len(cand)):
			if target >= cand[i]:
				temp(yiyou + [cand[i]], t - cand[i], cand[i+1:])
	temp([], target, candidates)
	return b

你可能感兴趣的:(数组_组合总和)