【发布时间】:2019-08-27 21:41:09
【问题描述】:
a = [121, 144, 19, 161, 19, 144, 19, 11]
b = [121、14641、20736、361、25921、361、20736、361]
返回 true,因为 b[] 具有 a[] 中元素的平方值,与顺序无关。
这是我尝试过的......
static boolean comp(int a[], int b[]) {
int x = 0;
if (a.equals(b)) {
for (int i : a) {
for (int j : b) {
if (a[i] == b[j] * b[j]) {
x++;
} else {
x--;
}
}
}
} else {
return false;
}
if (x == a.length) {
return true;
} else {
return false;
}
}
【问题讨论】:
-
它是否必须包含来自
a的所有 元素的平方,或者如果它至少包含一个元素是真的吗? -
您的代码存在一些问题。你的第一个
if条件应该是a.equals(b) == false。您的for loops正在迭代数组a或b的元素,而不是数组的索引。不确定计数应该做什么,但我假设您希望 b 中的每个元素都有一个square。然而,简单的计数并不能解决这个问题(如果 b 中有多个正方形)。递减似乎是错误的。 -
另外,如果
a和b相等,则不一定是false。考虑a和b蜜蜂[1]。
标签: java