# Matrix sum except one item

• Difficulty Level : Easy
• Last Updated : 07 Dec, 2022

Given 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```

Approach 1: 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``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

 ``

## Javascript

 ``

Output

`22`

Approach 2: 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``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

 ``

## Javascript

 ``

Output

`22`

Time Complexity: O(R*C) where R and C are rows and columns of a given matrix|
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up