Diagonal Difference

Sort by

recency

|

5784 Discussions

|

  • + 0 comments
    function diagonalDifference(arr) {
        const maxIndex = arr.length - 1;
        let diag1 = 0;
        let diag2 = 0;
        for (let i = 0; i < arr.length; i++) {
            diag1 += arr[i][i]
            diag2 += arr[i][maxIndex - i]
        }
        return Math.abs(diag1 - diag2);
    }
    
  • + 0 comments
    def diagonalDifference(arr):
        # Write your code here
        first_diagonal = 0
        second_diagonal = 0
        length = len(arr)
        for i in range(length):
            first_diagonal = first_diagonal+arr[i][i]
            second_diagonal = second_diagonal + arr[length - i - 1 ][i]
        result  = first_diagonal - second_diagonal
        return  result*-1 if result<0 else result
    
  • + 0 comments
    public static int diagonalDifference(List<List<Integer>> arr) {
        int n = arr.size();
        int primaryDiagonalSum = 0;
        int secondaryDiagonalSum = 0;
    
        for (int i = 0; i < n; i++) {
            primaryDiagonalSum += arr.get(i).get(i); // Left-to-right diagonal
            secondaryDiagonalSum += arr.get(i).get(n - 1 - i); // Right-to-left diagonal
        }
    
        return Math.abs(primaryDiagonalSum - secondaryDiagonalSum);
    }
    
  • + 0 comments

    The n number here is unnecessary and is misleading. All we need is just matrix and nothing more.

  • + 0 comments

    Declarative javascript solution

    function diagonalDifference(arr) {
      const getDiagonal = (arrArg, isLeftDiagonal) =>
        arrArg.map((arr, index) =>
          isLeftDiagonal ? arr.reverse()[index] : arr[index]
        );
      const arrSum = (arrArg) => arrArg.reduce((acc, curr) => (acc += curr));
      const res = arrSum(getDiagonal(arr)) - arrSum(getDiagonal(arr, true));
      return Math.abs(res);
    }