求一算法答案

luck0235 luck0235 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
一个简单的类

class item
{
public string name { get; set; }
public int level { get; set; }
}


构造演示数据

List<item> all = new List<item>();
all.Add(new item { name = "Red", level = 0 });
all.Add(new item { name = "Blue", level = 0 });

all.Add(new item { name = "S", level = 1 });
all.Add(new item { name = "M", level = 1 });
all.Add(new item { name = "L", level = 1 });

all.Add(new item { name = "Man", level = 2 });
all.Add(new item { name = "Woman", level = 2 });


算法要求根据level分组进行所有name的组合,结果如下:
Red - S - Man
Red - S - Woman
Red - M - Man
Red - M - Woman
Red - L - Man
Red - L - Woman
Blue - S - Man
Blue - S - Woman
Blue - M - Man
Blue - M - Woman
Blue - L - Man
Blue - L - Woman

如果level最大值固定的话没有问题,比如level最大值为2我可以这样:

foreach(var _0 in all.Where(m => m.level == 0))
{
foreach(var _1 in all.Where(m => m.level == 1))
{
foreach(var _2 in all.Where(m => m.level == 2))
{
System.Console.WriteLine(_0.name + "-" + _1.name + "-" + _2.name);
}
}
}


现在关键问题是level最大值不固定,可能为2,可能为5,可能为10...... 请教如何用动态的方式完成这样的组合?
PS:设定level以1递增,可用for(int i = 0; i < level; i++)的方式遍历level
很多年没来CSDN了,不知现在CSDN比Stackoverflow如何,谢谢各位
...全文

相关推荐

tyut算法设计与分析实验报告

这一算法的关键点在于合并过程,它需要一个与原数组等长的临时数组来存储合并后的结果,而合并的步骤时间复杂度为O(n),因此整个排序算法的最坏情况时间复杂度为O(nlogn)。

shenhai_

CSP-S 2024初赛完善程序题解[源码]

解题过程中,参赛者需要运用到二分查找这一算法技巧,这是一种高效的搜索算法,能在有序序列中快速找到目标值。

z4a5b6

Python编程实现二分法和牛顿迭代法求平方根代码

在Python中,二分法求平方根的代码实现通过迭代来逼近答案,每次迭代都会减少搜索空间,直到满足精度要求。接着,我们讨论牛顿迭代法。这种方法基于牛顿-拉弗森迭代公式,用于寻找函数零点。

weixin_38632006

九年级25.2列举法求概率同步练习题及答案2套精选.doc

以上是关于"九年级25.2列举法求概率同步练习题及答案2套精选.doc"文档中涉及的数学概率知识的详细解析,涵盖了概率的基本概念、计算方法以及在实际问题中的应用。

CSGOGOTO

九年级数学下册第三十一章随机事件的概率31.4用列举法求简单事件的概率第2课时用画树形图求简单事件的概率同步练习无答案新版冀教版

九年级数学下册第三十一章随机事件的概率31.4用列举法求简单事件的概率第2课时用画树形图求简单事件的概率同步练习无答案新版冀教版

超级源码阿
评论 16
收藏 已收藏
分享
返回顶部
luck0235
C# 111,129 成员 642,540 内容