Diagonal Difference

Sort by

recency

|

167 Discussions

|

  • + 0 comments

    My solution:

    public static int diagonalDifference(List<List<int>> arr)
        {
            int sizeCol = arr[0].Count;
            int diagonal1 = 0;
            int diagonal2 = 0;
            for(int i = 0; i<arr.Count; i++){
                for(int j = 0; j<sizeCol; j++){
                    if(arr[i][j] < - 100 || arr[i][j] > 100) 
                        throw new Exception("Numero invalido");
                        
                    if(i == j) diagonal1 += arr[i][j];
                }
                diagonal2 += arr[i][sizeCol - i - 1];
            }
            return Math.Abs(diagonal1 - diagonal2);
        }
    
  • + 0 comments

    Java

      public static int diagonalDifference(List<List<Integer>> arr) {
            int leftArr = 0;
            int rightArr = 0;
            
            int i=0;
            int j=arr.size()-1;
            while(i<arr.size()){
                leftArr = leftArr + arr.get(i).get(i);
                rightArr = rightArr + arr.get(i).get(j);
                i++;
                j--;
            }
            
            return Math.abs(leftArr - rightArr);
        }
    
  • + 0 comments

    C++:

    int GetLeftToRightDiagSum(vector<vector<int>>& arr)
    {
        int sum = 0;
        for(int i = 0; i < arr.size(); i++)
        {
            sum+= arr[i][i];
        }
        return sum;
    }
    
    int GetRightToLeftDiagSum(vector<vector<int>>& arr)
    {
        int sum = 0;
        int int_arr_size = arr[0].size() - 1;
        for(int i = 0; i < arr.size(); i++)
        {
            sum+= arr[i][int_arr_size - i];
        }
        return sum;
    }
    
    int diagonalDifference(vector<vector<int>> arr) {
        int a = GetLeftToRightDiagSum(arr);
        int b = GetRightToLeftDiagSum(arr);
        
        return (a > b) ? (a-b) : (b-a);
    }
    
  • + 0 comments
    function diagonalDifference(arr) {
        let sum1=0,sum2=0,i,j,k,l,result;
        let n = arr.length - 1;
         k=n;
         for(l=0; l<arr.length; l++){
                sum1 = sum1 + arr[k][l];
                k--;  
            }
        for(i=0; i<arr.length; i++){
                sum2 = sum2 + arr[i][i];
            } 
            if(sum1>sum2){
                result = sum1 - sum2
            }else{
                result = sum2 - sum1
            }
            return result
    } 
    
  • + 0 comments

    For Python3 solution

        result = 0
        for i in range(len(arr)):
            result += arr[i][i] - arr[i][len(arr)-1-i]
        return abs(result)