使用 JavaScript 構建一個特定大小的陣列,且相鄰元素之和為完全平方數
我們需要編寫一個 JavaScript 函式,該函式接收一個數字 n。我們的函式應返回一個數字陣列 1...n,它們排列的方式是每個 2 個連續數字的和是一個平方。
示例
相應的程式碼為:
const n = 15;
const buildSquaresArray = (n = 1, res = []) => {
const helper = (res, set, n) => {
if(set.size === n){
return true;
};
for(let i = 1; i <= n; i++){
if (set.has(i)){
continue;
};
if(res.length && Math.sqrt(res[0] + i) % 1 !== 0){
continue;
};
set.add(i);
res.unshift(i);
if(helper(res,set,n)){
return true;
}
res.shift();
set.delete(i);
};
return false;
};
return helper(res,new Set(),n) ? res : false;
};
console.log(buildSquaresArray(n));輸出
控制檯中的輸出為:
[ 9, 7, 2, 14, 11, 5, 4, 12, 13, 3, 6, 10, 15, 1, 8 ]
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP