Matrix sum except one item
Given a n*m matrix find the sum of the elements of the matrix without the element specified by its position
Examples:
Input : mat[] = {{1 2 4}, {5 6 8}} cell = (0 2) Output :22 We need to find sum of all elements except mat[0][2]. Input : mat[][] = {{5 6 2 3}, {2 3 1 8}, {9 6 5 2}} cell = (1 2) Output :51
A simple solution is to traverse through matrix. For every visited cell, check if it is the cell to be ignored.
C++
// C++ program to find sum // of matrix except cell (x, y) #include<bits/stdc++.h> using namespace std; // Dimension of input matrix # define R 2 # define C 3 // Returns sum of arr[][] // except cell arr[x][y] int calcSum( int arr[R][C], int x, int y) { int sum = 0; for ( int i = 0; i < R; i++) { for ( int j = 0; j < C; j++) { if (i != x || j != y) sum = sum + arr[i][j]; } } return sum; } // Driver code int main() { int x = 0, y = 2; int arr[R][C] = {1, 2, 4, 5, 6, 8 }; cout << calcSum(arr, x, y); } // This code is contributed // by ChitraNayal |
Java
// Java program to find sum of matrix except // cell (x, y) class Matrix { // Returns sum of arr[][] except cell arr[x][y] static int calcSum( int [][] arr, int x, int y) { int sum = 0 ; for ( int i = 0 ; i < arr.length; i++) { for ( int j = 0 ; j < arr[i].length; j++) { if (i != x || j != y) sum = sum + arr[i][j]; } } return sum; } public static void main(String[] args) { int x = 0 , y = 2 ; int [][] arr = { { 1 , 2 , 4 }, { 5 , 6 , 8 }, }; System.out.println(calcSum(arr, x, y)); } } |
C#
// C# program to find sum // of matrix except cell (x, y) using System; class GFG { // Returns sum of arr[,] // except cell arr[x][y] static int calcSum( int [,] arr, int x, int y) { int sum = 0; for ( int i = 0; i < arr.GetLength(0); i++) { for ( int j = 0; j < arr.GetLength(1); j++) { if (i != x || j != y) sum = sum + arr[i, j]; } } return sum; } // Driver Code public static void Main() { int x = 0, y = 2; int [,] arr = {{ 1, 2, 4 }, { 5, 6, 8 }}; Console.Write(calcSum(arr, x, y)); } } // This code is contributed // by ChitraNayal |
Python 3
# Python 3 program to find # sum of matrix except cell (x, y) # Returns sum of arr[][] # except cell arr[x][y] def calcSum(arr, x, y): s = 0 for i in range (R): for j in range (C): if (i ! = x or j ! = y): s = s + arr[i][j]; return s; # Driver code x = 0 y = 2 arr = [[ 1 , 2 , 4 ], [ 5 , 6 , 8 ]] R = 2 C = 3 print (calcSum(arr, x, y)) # This code is contributed # by ChitraNayal |
PHP
<?php // PHP program to find // sum of matrix except // cell (x, y) $R = 2; $C = 3; // Returns sum of arr[][] // except cell arr[x][y] function calcSum(& $arr , $x , $y ) { global $R , $C ; $sum = 0; for ( $i = 0; $i < $R ; $i ++) { for ( $j = 0; $j < $C ; $j ++) { if ( $i != $x || $j != $y ) $sum = $sum + $arr [ $i ][ $j ]; } } return $sum ; } // Driver code $x = 0; $y = 2; $arr = array ( array (1, 2, 4), array (5, 6, 8)); echo (calcSum( $arr , $x , $y )); // This code is contributed // by ChitraNayal ?> |
Output:
22
The above solution causes an extra comparison for every matrix item. A better solution is to first find overall sum, then subtract given cell.
C++
// C++ program to find sum // of matrix except cell (x, y) #include<bits/stdc++.h> using namespace std; #define R 2 #define C 3 // Returns sum of arr[][] // except cell arr[x][y] int calcSum( int arr[R][C], int x, int y) { int sum = 0; for ( int i = 0; i < R; i++) for ( int j = 0; j < C; j++) sum = sum + arr[i][j]; return sum - arr[x][y]; } // Driver code int main() { int x = 0, y = 2; int arr[R][C]= {1, 2, 4 , 5, 6, 8 }; cout << (calcSum(arr, x, y)); } // This code is contributed // by ChitraNayal |
Java
// Java program to find sum of matrix except // cell (x, y) class Matrix { // Returns sum of arr[][] except cell arr[x][y] static int calcSum( int [][] arr, int x, int y) { int sum = 0 ; for ( int i = 0 ; i < arr.length; i++) for ( int j = 0 ; j < arr[i].length; j++) sum = sum + arr[i][j]; return sum - arr[x][y]; } public static void main(String[] args) { int x = 0 , y = 2 ; int [][] arr = { { 1 , 2 , 4 }, { 5 , 6 , 8 }, }; System.out.println(calcSum(arr, x, y)); } } |
C#
// C# program to find sum // of matrix except cell (x, y) using System; class GFG { // Returns sum of arr[,] // except cell arr[x,y] static int calcSum( int [,] arr, int x, int y) { int sum = 0; for ( int i = 0; i < arr.GetLength(0); i++) for ( int j = 0; j < arr.GetLength(1); j++) sum = sum + arr[i, j]; return sum - arr[x, y]; } // Driver code public static void Main() { int x = 0, y = 2; int [,] arr = {{ 1, 2, 4 }, { 5, 6, 8 }}; Console.Write(calcSum(arr, x, y)); } } // This code is contributed // by ChitraNayal |
Python 3
# Python 3 program to find # sum of matrix except cell (x, y) # Returns sum of arr[][] # except cell arr[x][y] def calcSum( arr, x, y): s = 0 for i in range (R): for j in range (C): s = s + arr[i][j] return s - arr[x][y] # Driver code x = 0 y = 2 R = 2 C = 3 arr = [[ 1 , 2 , 4 ], [ 5 , 6 , 8 ]] print (calcSum(arr, x, y)) # This code is contributed # by ChitraNayal |
PHP
<?php // PHP program to find sum // of matrix except cell (x, y) $R = 2; $C = 3; // Returns sum of $arr[][] // except cell $arr[$x][$y] function calcSum(& $arr , $x , $y ) { global $R , $C ; $sum = 0; for ( $i = 0; $i < $R ; $i ++) for ( $j = 0; $j < $C ; $j ++) $sum = $sum + $arr [ $i ][ $j ]; return $sum - $arr [ $x ][ $y ]; } // Driver code $x = 0; $y = 2; $arr = array ( array (1, 2, 4 ), array (5, 6, 8 )); echo (calcSum( $arr , $x , $y )); // This code is contributed // by ChitraNayal ?> |
Output:
22
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.