gpt4 book ai didi

c++ - 在集合 0-N 中找到基数 C 的所有可能子集

转载 作者:行者123 更新时间:2023-11-28 05:11:15 24 4
gpt4 key购买 nike

您如何获取一个大小为 N 的集合并打印给定基数的所有可能子集?

e.g. [0 1 2], 2--> [0 1], [0 2], [1, 2]

我找不到这方面的代码,我花了一些时间来写,所以我认为它可能会有帮助:)

最佳答案

你可以使用这个函数:

void printSets(int N, int Cardinality)
{
std::vector<int> nums;
helper(nums, 0, 0, N, Cardinality);
}

使用辅助函数:

void helper(std::vector<int> &nums, int size, int index, int max, int cardinality)
{
if (size == cardinality) //SET IS READY TO PRINT (base case)
{
for (int k = 0; k < cardinality; ++k)
std::cout<< nums[k] << " ";
std::cout << std::endl;
return;
}
for (int i = index; i < max+1; ++i) //WE LOOP THROUGH THE SPACES LEFT
{
nums.push_back(i);
helper(nums, size+1, i+1, max, cardinality); //WE NEST AS MANY LOOPS AS THE CARDINALITY
nums.pop_back();
}
}

关于c++ - 在集合 0-N 中找到基数 C 的所有可能子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43460103/

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