给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。
candidates 中的数字可以无限制重复被选取。
说明:
所有数字(包括 target)都是正整数。解集不能包含重复的组合。
输入:candidates = [2,3,6,7] target = 7所求解集为:
[7],
[2,2,3]
python-找出数组的解集题目
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- chuifengde 2021-11-13 21:17关注
import itertools as it candidates = [2, 3, 6, 7, 4, 5] target = 9 res = set() for i in range(1, len(candidates) + 1): x = it.combinations(candidates, i) for j in x: if sum(j) == target: res.add(tuple(sorted(j))) else: dd = target - sum(j) if dd <= 0:continue for i in candidates: yy = dd % i if yy == 0 and dd // i != 1: res.add(tuple(sorted(list(j) + [i] * (dd // i)))) print(res)
解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥20 verilog状态机方法流水灯
- ¥15 pandas代码实现不了意图
- ¥15 GD32H7 从存储器到外设SPI传输数据无法重复启用DMA
- ¥25 LT码在高斯信道下的误码率仿真
- ¥45 渲染完成之后将物体的材质贴图改变,自动化进行这个操作
- ¥15 yolov5目标检测并显示目标出现的时间或视频帧
- ¥15 电视版的优酷可以设置电影连续播放吗?
- ¥50 复现论文;matlab代码编写
- ¥30 echarts 3d地图怎么实现一进来页面散点数据和卡片一起轮播
- ¥15 数字图像的降噪滤波增强