【发布时间】:2020-04-08 03:21:23
【问题描述】:
我正在尝试解决代码战问题,但我的代码似乎无法正常工作。
a1 = [121, 144, 19, 161, 19, 144, 19, 11];
a2 = [11*11, 121*121, 144*144, 19*19, 161*161, 19*19, 144*144, 19*19];
Test.assertEquals(comp(a1, a2), true);
function comp(array1, array2){
let newArray1Squared = [];
let newArray1 = a1.sort(function(a, b){
return a - b;
});
newArray1.map(function(num){
newArray1Squared.push(num*num);
});
let newArray2 = a2.sort(function(a, b){
return a - b;
});
for (let i = 0; i<newArray1Squared.length; i++){
if (newArray1Squared[i] === newArray2[i]){
return true;
} else {
return false;
}
}
}
到目前为止,这是我的代码。问题是:
给定两个数组 a 和 b,编写一个函数 comp(a, b)(Clojure 中的 compSame(a, b))检查这两个数组是否具有“相同”元素,是否具有相同的多重性。这里的“相同”表示b中的元素是正方形中的元素,不分先后。
示例有效数组
a = [121, 144, 19, 161, 19, 144, 19, 11]
b = [121, 14641, 20736, 361, 25921, 361, 20736, 361]
comp(a, b) 返回真,因为在 b 中,121 是 11 的平方,14641 是 121 的平方,20736 是 144 的平方,361 是 19 的平方,25921 是 161 的平方,以此类推。如果我们将 b 的元素写成正方形,那就很明显了:
【问题讨论】:
-
嗨 charlieyin,如果此页面上的答案解决了您的问题,请考虑将其标记为已接受。谢谢
标签: javascript algorithm