获取总和为X的数组的数字列表[重复]

     2023-03-31     135

关键词:

【中文标题】获取总和为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]我必须从上面的列表中提取最后一个数字,... 查看详情