【问题标题】:Hackerrank Diagonal Difference Question in JavaScriptJavaScript中的Hackerrank对角差问题
【发布时间】:2022-09-25 06:37:52
【问题描述】:

我正在尝试使用以下 JavaScript 代码完成 Hackerrank 的对角线差异问题,

function diagonalDifference(arr) {
// Write your code here
let right = 0;
let left = 0;
const row = Math.sqrt(arr.length);
for (let i=0; i<arr.length; i=i+row){
        right+= arr[i]
        i++
}
for (let i=row; i<arr.length; i=i+row){
        left+= arr[i-1]
        i--
}

let res = Math.abs(right-left)
return res

}

然而,答案不断出现错误的答案enter image description here

此外,我尝试在其他 IDE 中运行此代码,其他一切都给了我正确的输出

    标签: javascript


    【解决方案1】:

    你快到了,尝试使用一个循环

    const arr = [
      [1, 2, 3],
      [4, 5, 6],
      [7, 8, 9]
    ]
    
    const diagonalDifference = (arr) => {
      const length = arr.length;
      let left = 0,
        right = 0;
    
      for (let i = 0; i < length; i++) {
        left += arr[i][i];
        right += arr[length - 1 - i][i]
      }
    
      console.log(Math.abs(left - right));
    
      return Math.abs(left - right);
    }
    
    diagonalDifference(arr)

    【讨论】:

    • 感谢您以一种友好的方式传达它并且它有效!
    【解决方案2】:
    function diagonalDifference(arr) {
       let ltr_diagonal = 0;
       let rtl_diagonal = 0;
       for(let i = 0; i < arr.length; i++) {
           ltr_diagonal += arr[i][i];
           rtl_diagonal += arr[i][arr.length-i-1];
       }
       let result = Math.abs(ltr_diagonal - rtl_diagonal);
       return result;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-19
      • 2022-06-19
      • 2019-10-08
      相关资源
      最近更新 更多