6 回答
TA贡献1794条经验 获得超8个赞
这很简单:
static boolean comp(int a[], int b[]) {
for (int i : a) {
if (!Arrays.asList(b).contains(i*i)) {
return false;
}
}
return true;
}
简而言之,你遍历 a 和 b 的每个值,看看 a 的平方值是否是 b。当你发现不匹配时,你会自动返回 false。否则,返回 true。
TA贡献1804条经验 获得超3个赞
public static Boolean compare(int[] a, int[] b) {
Arrays.sort(a);
Arrays.sort(b);
for (int i = 0; i < a.length; i++) {
if (a[i] * a[i] != b[i]) {
return false;
}
}
return true;
}
TA贡献1805条经验 获得超10个赞
static boolean comp(int a[], int b[]) {
for (int i : a) {
if (!Arrays.asList(b).contains(i*i)) {
return false;
}
}
return true;
}
TA贡献1864条经验 获得超2个赞
List
有一个containsAll
,我会用它;使用 Java 8+ 和流可能看起来像
static boolean comp(int a[], int b[]) {
return Arrays.stream(b).distinct().boxed().collect(Collectors.toList())
.containsAll(Arrays.stream(a).map(x -> x * x).boxed()
.collect(Collectors.toList()));
}
TA贡献1851条经验 获得超4个赞
bool Same(int[] arr1, int[] arr2)
{
for (int i = 0; i < arr1.Length; i++)
{
var correctIndex = Array.IndexOf(arr2, (int)Math.Pow(arr1[i], 2));
if (correctIndex == -1)
{
return false;
}
arr2.Take(correctIndex);
}
return true;
}
in c#
TA贡献1844条经验 获得超8个赞
public static Boolean compare(int[] a, int[] b) {
Arrays.sort(a);
Arrays.sort(b);
for (int i = 0; i < a.length; i++) {
if (a[i] * a[i] != b[i]) {
return false;
}
}
return true;
}
添加回答
举报