gpt4 book ai didi

javascript - 给定一个大小为 N 乘以 N 的方阵。 计算两条主对 Angular 线总和的绝对差

转载 作者:行者123 更新时间:2023-12-03 17:00:35 24 4
gpt4 key购买 nike

这是来自hackerrack.com的问题,

问题的解释

enter image description here

我解决了问题,但我找不到乐观的解决方案 , 我们可以使用对象字面量并找到最佳解决方案吗?

function getTwoDimention(input){
var input = input.split('\n');
var twoDimArr=[];
for(var n=0; n<input.length; n++){
var subarr = input[n].split(' ');
if(subarr.length > 1){
twoDimArr.push(subarr)
}
}
return twoDimArr;
}

function getFristDiagonal(twoDimArr){
var sum = 0;
for(var i=0; i<twoDimArr.length; i++){
for(var j=i; j<=i; j++){
sum += parseFloat(twoDimArr[i][j]);
}
}
return sum;
}
function getSecondDiagonal(twoDimArr){
var sum = 0;j=twoDimArr.length-1;
for(var i=0; i<twoDimArr.length; i++){

sum += parseFloat(twoDimArr[i][j--]);
}
return sum;
}
function processData(input) {
//Enter your code here
twoDimArr = getTwoDimention(input);
var firtDia = getFristDiagonal(twoDimArr);
var secDia = getSecondDiagonal(twoDimArr);

console.log(secDia - firtDia);

}

实际工作代码在 jsfiddle

Fiddle Demo

也适用于 一些测试用例失败 , 当每行的元素数量不同时

提前谢谢了

最佳答案

函数 diagonalDifference(arr) {

let d1 = 0;
let d2 = 0;

let j = 0;
let k = arr.length-1;


for(let i = 0; i < arr.length; i++){
// from left to right
d1 += arr[i][j]
j++;

// from right to left
d2 += arr[i][k]
k--;

}

const diff = Math.abs(d1-d2)
return diff;

}

关于javascript - 给定一个大小为 N 乘以 N 的方阵。 计算两条主对 Angular 线总和的绝对差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30823180/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com