|
|
1
2
如果您使用的是python,这是标准库的一部分:
您可以这样使用它(假设您的数组都不是空的)。这个例子打印出数组中元素的每个组合。
|
|
|
2
1
你可以在每个数组中为你的个人位置保留一个计数器。在get_next方法中,增加一个的计数器并按数组的长度对其进行修改。然后每次前一个计数器翻到0时,就增加下一个计数器;
编辑:如果数组的数目不同,请在数组中保留位置变量。事实上,这样可能会更好。这样,就可以像引用数组本身一样引用pos变量。 |
|
|
3
0
要抓住阿农说的话,你不只是在他们身上兜圈子。在类中维护状态,以便知道每个数组的最后一个索引是什么。逻辑是一样的,但你不能在一个连续的循环中运行。伪代码逻辑是: get_next()
{
oldn3 = this.n3;
oldn2 = this.n2;
oldn1 = this.n1;
if(this.n3 == this.a3.Count)
this.n3 = 0;
else
this.n3++;
if(oldn3 > this.n3)
if(this.n2 == this.a2.Count)
this.n2 = 0;
else
this.n2++;
if(oldn2 > this.n2)
if(this.n1 == this.a1.Count)
this.n1 = 0;
else
this.n1++;
if(oldn1 > this.n1)
return NO_MORE_PERMS;
return [n1,n2,n3];
}
getCurrent()
{
return [n1,n2,n3];
}
|
|
|
4
0
所以…这个怎么样 不是 直截了当? 你需要一个迭代器。您希望它在最后一个数组上迭代。当它到达该数组的末尾时,增加它在第二个最后一个数组中的当前位置,并返回到最后一个数组的开头。
使用c s的伪代码
编辑:如果集合的数目不同,可以使用某种形式的递归:
考虑一下当一个长度为1的列表被传入时的行为,然后考虑一下长度为2的列表的行为,并让自己确信它确实有效。 |
|
|
feasega · 聚合物模拟-2个节点之间的最短路线,适用于所有节点 1 年前 |
|
|
Alisa Petrova · 在有向图中更改一对顶点以创建循环 1 年前 |
|
|
b39b332d · 使用C++标准库实现高效间隔存储 1 年前 |
|
ABGR · 二叉树的直径——当最长路径不通过根时的失败案例 1 年前 |
|
|
EpicAshman · 数独棋盘程序中同一列和同一行出现两次的数字 1 年前 |