递归法求解数列组合的各种情况
C#代码:
static void Main(string[] args)
{
int[] items = new int[] { 0,1,2,3,4};
int m = 3;
List<int[]> allCombinations = GetCombinations(items, m);
foreach (int[] combination in allCombinations)
{
Console.WriteLine(string.Join(",", combination));
}
}
static List<int[]> GetCombinations(int[] items, int m)
{
List<int[]> allCombinations = new List<int[]>();
int[] combination = new int[m];
GetCombinations(items, m, 0, combination, 0, allCombinations);
return allCombinations;
}
static void GetCombinations(int[] items, int m, int itemIndex, int[] combination, int combinationIndex, List<int[]> allCombinations)
{
if (combinationIndex == m)
{
allCombinations.Add((int[])combination.Clone());
return;
}
if (itemIndex >= items.Length)
{
return;
}
combination[combinationIndex] = items[itemIndex];
GetCombinations(items, m, itemIndex + 1, combination, combinationIndex + 1, allCombinations);
GetCombinations(items, m, itemIndex + 1, combination, combinationIndex, allCombinations);
}
图解:
#####
愿你一寸一寸地攻城略地,一点一点地焕然一新
#####
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2022-02-04 C#之动态语言扩展