组合总数 python

‘’'已知—个无重复元素的序列,给定—个目标数,找出序列中所有可以使数字和未目标数的组合。
序列中的元素可以被多次选用,不能出现重复的组合, 序列中的元素和目标数都是正整数。

例如序列 [2, 3, 5], 目标值为8, 最终的组合有
(2, 3, 3)
(3, 5)
(2, 2, 2, 2)

‘’’

def find_combination(nums, target):
	combination = []  # 初始化组合列表
	for item in nums:
		if item == target:  # 如果当前元素等于目标值,则将其添加到组合列表中
			combination.append([item]) #combination是一个二维列表
		
		elif item > target:  # 如果当前元素大于目标值,则不需要继续处理
			continue
		else:
			remain = target - item  # 计算剩余的目标值
			# 递归调用find_combination函数,将剩余的目标值和序列中的其他元素组合
			res_lst = find_combination(nums, remain)  # res_lst 是二个列表 是元素和是remain的组合
			for res in res_lst:  # res是一个一维列表
				res.append(item)  # 将当前元素添加到组合列表中 就是元素和是# remain的组合 加上当前元素就是元素和是target的组合
				# combination.append(res)  # 将组合列表中的所有元素添加到组合列表中
			combination.extend(res_lst)  # 将组合列表中的所有元素添加到组合列表中
	
	return combination


# 去重操作
def remove_duplicate(lst):
	combination_set = set()
	
	for item in lst:
		item.sort()  # 对元素进行排序,方便去重
		combination_set.add(tuple(item))  # 将元素转换为元组,并添加到集合中 list列表没有哈希值 不能放到集合中
	
	return combination_set


if __name__ == '__main__':
	nums = [2, 3, 5]
	target = 8
	res_lst = remove_duplicate(find_combination(nums, target))  # res_lst是一个集合
	# print(res_lst)  # 输出组合列表中的所有元素
	for item in res_lst:
		print(item)  # 输出组合列表中的所有元素

相关推荐

  1. 组合总数 python

    2024-04-27 21:14:02       29 阅读
  2. leetcode377--组合总数IV

    2024-04-27 21:14:02       34 阅读
  3. Python组合数据类型

    2024-04-27 21:14:02       50 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-27 21:14:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-27 21:14:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-27 21:14:02       87 阅读
  4. Python语言-面向对象

    2024-04-27 21:14:02       96 阅读

热门阅读

  1. 智慧校园-教务管理系统建设要素

    2024-04-27 21:14:02       36 阅读
  2. 【ROS2笔记八】ROS2编写Python launch 文件

    2024-04-27 21:14:02       34 阅读
  3. 后知后觉Makefile之二(专谈并行编译)

    2024-04-27 21:14:02       32 阅读
  4. 常见经典目标检查算法及其应用

    2024-04-27 21:14:02       34 阅读
  5. 微前端micro-app 子应用 调用父应用方法

    2024-04-27 21:14:02       38 阅读
  6. 网络分析工具:tcpdump 安装与使用

    2024-04-27 21:14:02       34 阅读
  7. 村庄集中式生活废水处理设备技术工艺

    2024-04-27 21:14:02       94 阅读