标签:target nums cc 整数 ee value 数组 目标值
eg:给定 nums =[3, 2, 3, 1, 5], target = 13
因为 nums[0] + nums[1] +nums[2] + nums[4]= 3+2+3+5=13 所以返回 [0, 1, 2, 4]
from itertools import combinations a = [3, 2, 3, 1, 5] target = 13 # 为数组标记下标 def markingIndex(a): arr = [] for key, value in enumerate(a): obj = {"index": key, "value": value} arr.append(obj) return arr bb = markingIndex(a) # 为数组做了排列组合 arr1 = [] for i in range(1, len(bb)): if i + 1 > len(a): break else: arr1 += list(combinations(bb, i + 1)) # 对排列组合的数据求和,与目标值去做对比,当相等的时候,结束对比,最终返回下标 ee = [] for cc in arr1: print(cc) sumData = 0 for dd in cc: sumData += dd["value"] if sumData == target: for e in cc: ee.append(e["index"]) break print(ee)
标签:target,nums,cc,整数,ee,value,数组,目标值 来源: https://www.cnblogs.com/lxz123/p/16292196.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。