所以我有以下代码,它检查数组中的元素,看它们是否模数为x(在参数中定义)。
我试图用堆栈或队列重写相同的代码,希望不同的循环,但我在这些数据类型中相当初学者,因此我很难实现它们。
任何帮助都将不胜感激。
Algorithm Checker (Array A, x)
For i <- 0 to n-1 do
For j <- i+1 to n-1 do
If A[i] modulo A[j] equals to x then
Return A[i] and A[j]
End If
End for
End for
答案 0 :(得分:1)
我希望我理解你。您使用s1
的所有元素填充第一个堆栈A
并通过弹出它们来迭代。在此循环中,创建s2
作为s1
的副本,并通过弹出第一个元素来遍历其元素。然后,您可以比较两个元素。在类似Python的伪代码中,它看起来类似于
s1 = A.toStack # It's pseudocode :-)
while !s1.isEmpty():
elem1 = s1.pop()
s2 = s1.copy()
while !s2.isEmpty():
elem2 = s2.pop()
if elem1 % elem2 == x:
return elem1 == elem2
请注意,为了保持迭代元素的顺序,您必须以相反的顺序填充s1
。 Java中的实现取决于您。
答案 1 :(得分:0)
public int[] AlgoChkr(int A[],int x)
{ int B[] = new int[A.length];
int j = 0;
for(int i = 0; i<A.length ;i++ )
{ if(A[i]%x ==0)
{
B[j] = A[i];
j++;
}
}
return B;
}