关键词:
【中文标题】获取总和为X的数组的数字列表[重复]【英文标题】:Get list of numbers form Array Whose sum is X [duplicate] 【发布时间】:2020-10-13 13:01:41 【问题描述】:我有一个号码,比如说27
和一个NumbersList
的列表。如何从NumbersList
获得一些选定的数字,其中一些是 27。以及使用来自NumbersList
的最大数字
这可以通过抛出所有可能性来完成,但我内心深处知道有一个简单的解决方案,但我想多了。
#available numbers
NumbersList = [1,5,9,4,6,8,12,12,1,3,6,8,7,8,2]
def GetNumbers(number):
global NumbersList
tmpList = []
#Some magical code
return tmpList
#now result have
result = GetNumbers(27)
# result is [12, 12, 3]
# 12+12+3 using most possible greater numbers from "NumbersList"
【问题讨论】:
【参考方案1】:你可以试试
NumbersList = [1,5,9,4,6,8,12,12,1,3,6,8,7,8,2]
def GetNumbers(number):
result = []
for i in sorted(NumbersList, reverse=True):
if sum(result) + i <= number:
result.append(i)
return result
或者如果NumbersList
很大,那么你可以减少迭代
def GetNumbers(number):
result = []
for i in sorted(NumbersList, reverse=True):
sum_list = sum(result)
if sum_list + i == number:
result.append(i)
return result
elif sum_list + i < number:
result.append(i)
return result
print(GetNumbers(27))
输出
[12, 12, 3]
【讨论】:
如何优先考虑列表末尾的数字而不是更大的数字? 从排序方法中移除 reverse=True【参考方案2】:这是一种方法
NumbersList = [1,5,9,4,6,8,12,12,1,3,6,8,7,8,2]
def GetNumbers(NumbersList, number):
tmpList = []
summ = 0
srtd = sorted(NumbersList)
for i in range(len(srtd)-1, 0, -1):
if summ + srtd[i] > number:
break
summ += srtd[i]
tmpList.append(srtd[i])
for i in range(len(NumbersList)):
if NumbersList[i] == number - summ:
tmpList.append(NumbersList[i])
if sum(tmpList) == number:
return tmpList
else:
return None
result = GetNumbers(NumbersList, 27)
print(result)
当然不是最好的,但可以做到这一点。
首先,您对列表进行排序,找到所有不超过限制的最大数字。然后你会找到丢失的号码。 如果有,返回数组。 如果没有,我们返回 None。
此代码不适用于所有情况,但它是一个很好的开始。
最简单的方法是对列表进行排序,然后向后循环,然后
下一个号码还有空位吗?
如果有,您可以将其添加到列表中。 如果没有,请跳过。最后你应该检查你的 tmpList 的总和。它的总和有可能是 != 您的预期数字。
【讨论】:
查找数组总和中的哪些数字到目标总和 [重复]
】查找数组总和中的哪些数字到目标总和[重复]【英文标题】:FindWhichNumbersinanArraySumtoTargetSums[duplicate]【发布时间】:2020-08-3007:41:59【问题描述】:做了一点会计工作,遇到了一个我认为我可以用JavaScript快速解决的问题——然后... 查看详情
在 Dart 中获取集合/列表中数字总和的最简洁方法是啥?
】在Dart中获取集合/列表中数字总和的最简洁方法是啥?【英文标题】:Whatisthecleanestwaytogetthesumofnumbersinacollection/listinDart?在Dart中获取集合/列表中数字总和的最简洁方法是什么?【发布时间】:2012-05-1110:21:23【问题描述】:我不... 查看详情
如何在飞镖列表中获取重复值的总和?
】如何在飞镖列表中获取重复值的总和?【英文标题】:howtogetthesumofduplicatevaluesinalistindart?【发布时间】:2021-02-0511:43:18【问题描述】:我想获取重复值的总和并将它们放在另一个列表中..有可能吗?Listlist=[1,1,2,3,2];ListnewList=[2,4... 查看详情
给定一个数字列表,如何创建总和的所有组合并返回这些总和的列表
】给定一个数字列表,如何创建总和的所有组合并返回这些总和的列表【英文标题】:Givenalistofnumbers,howdoyoucreateallthecombinationsofsumsandreturnalistofthosesum【发布时间】:2021-05-2823:52:33【问题描述】:假设我们有一个数字列表[1,2,3],... 查看详情
总和至少为 K 的最小数字集
】总和至少为K的最小数字集【英文标题】:MinimumsetofnumbersthatsumtoleastK【发布时间】:2013-01-2101:59:09【问题描述】:给定一个包含n个对象的列表,编写一个函数,输出。跟进:你能打败O(nlnn)吗?最小集合将是一个包含1个元素的... 查看详情
检查数组中两个不同数字的总和是不是等于变量数?
...布时间】:2014-06-2715:50:34【问题描述】:在Ruby中,我想获取一个数字数组,选择2个不同的数字,将这2个数字相加,然后查看那里的天气等于变量x.y和变量x。这是我使用的代码defar 查看详情
React JS获取数组中数字的总和
】ReactJS获取数组中数字的总和【英文标题】:ReactJSGetSumofNumbersinArray【发布时间】:2020-10-0302:27:49【问题描述】:我有这个数组constdata=["One",prix:100,"Two",prix:200,"Three",prix:300]我想像这样得到所有prix的总和:sum=600【问题讨论】:您... 查看详情
查找具有给定总和的数字列表的所有组合
】查找具有给定总和的数字列表的所有组合【英文标题】:Findallcombinationsofalistofnumberswithagivensum【发布时间】:2016-04-0317:17:42【问题描述】:我有一个数字列表,例如numbers=[1,2,3,7,7,9,10]如您所见,数字可能在此列表中出现多次。... 查看详情
如何获得推送数组的总和[重复]
】如何获得推送数组的总和[重复]【英文标题】:Howtogetsumofpushedarray[duplicate]【发布时间】:2018-11-2408:05:10【问题描述】:有人可以帮我将推送数字的总和放入数组吗?我需要在第20轮之后显示总和。我推的是玩家输入的scorePoint... 查看详情
如何在python中重复找到每个T数字的数字总和的数字总和,直到它成为一个数字?
...题描述】:这是我编写的代码,用于从重复次数的数字中获取数字总和,直到总和低于1 查看详情
回溯leetcode高频:39.组合总和
1、题目描述给你一个无重复元素的整数数组 candidates和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target的所有 不同组合,并以列表形式返回。你可以按任意顺序返回这些组合。candidate... 查看详情
返回数字的两个表达式的总和[重复]
】返回数字的两个表达式的总和[重复]【英文标题】:Sumoftwoexpressionsthatreturnanumber[duplicate]【发布时间】:2014-07-3011:53:57【问题描述】:我有一个列表和一个简单定义如下的查询:varlist=newList<int>();for(vari=0;i<4;i++)list.Add(i);va... 查看详情
查找列表中哪个数字总和等于某个数字的算法
...知道它是由多少个数字组成的)。是否有一种快速算法来获取可能的数字列表?用Python编写会很棒,但伪代码也很好。(除了Python 查看详情
可以为我们提供最大“触发器”总和的子列表数组是啥?
】可以为我们提供最大“触发器”总和的子列表数组是啥?【英文标题】:Whatisthesublistarraythatcangiveusmaximum\'flip-flop\'sum?可以为我们提供最大“触发器”总和的子列表数组是什么?【发布时间】:2020-01-0113:12:47【问题描述】:我... 查看详情
获取总和为 11 的所有 3 位数字,或者我们可以说模块在 JS 中为 1 [关闭]
】获取总和为11的所有3位数字,或者我们可以说模块在JS中为1[关闭]【英文标题】:getall3digitnumberwhosesumis11orwecansaymoduleis1inJS[closed]【发布时间】:2020-12-3022:29:46【问题描述】:作为回应,我想要总和为11的所有3位数字,并且还给... 查看详情
问题列表
...机选择分割数组的最大值优势洗牌O(1)时间插入、删除和获取随机元素(重复、不重复)黑名单中的随机数子数组问题不同字符的最小子序列morris遍历填充每个节点的下一个右侧节点指针(BFS、指针)二叉树展开为链表(递归、... 查看详情
给定一个数字列表,找到所有矩阵,使得每列和每行总和为 264
】给定一个数字列表,找到所有矩阵,使得每列和每行总和为264【英文标题】:Givenalistofnumbers,findallmatricessuchthateachcolumnandrowsumupto264【发布时间】:2020-04-1309:46:54【问题描述】:假设我有一个包含16个数字的列表。使用这16个数... 查看详情
如何从python中的列表中获取最后一个数字[重复]
】如何从python中的列表中获取最后一个数字[重复]【英文标题】:Howtogetthelastnumberfromlistinpython[duplicate]【发布时间】:2014-04-2810:59:50【问题描述】:假设我的列表为a=[0.0021,0.12,0.1224,0.22]我必须从上面的列表中提取最后一个数字,... 查看详情