gpt4 book ai didi

C# 算法 - 列出数字的所有排列

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:35:45 24 4
gpt4 key购买 nike

这是对我之前发布的问题 ( C# algorithm - find least number of objects necessary ) 的跟进,但有点不同。

鉴于我有以下代码:

var max = 80;
var list = new[]{10,20,30,40,50, 60);

我想生成一个包含所有可能组合的数组,我可以使用列表中的这些数字来获得最大数字。

该数组将包含 {40, 40}、{50, 30}、{40,30, 10} 等...

最佳答案

您需要按降序遍历所有数字。然后递归添加序列中的每个下一个降序数字。每次总和匹配时,注意组合,弹出并继续。当您的暂定总和超过 max 变量时,从该函数弹出到堆栈中的下一个函数。如果仍未达到最大值,则依次添加序列中的下一个数字。通过这种方式,您将涵盖所有可能的序列,没有重复项(除非给定的集合中有重复项,在这种情况下您会想要重复项)。实际上代码不会太多。

关于C# 算法 - 列出数字的所有排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1942785/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com