Given a matrix mat[][], we have to check if the sum of i-th row is equal to the sum of i-th column or not.
Examples:
Input : 1 2 3 4
9 5 3 1
0 3 5 6
0 4 5 6
Output : Yes
Sums of 1st row = 10 and 1st column
are same, i.e., 10
Expected time complexity is O(m x n) where m is a number of rows and n is a number of columns.
The idea is really simple. We use a nested loop to calculate the sum of each row and column and then check whether their sum is equal or not.
The implementation of the above idea is given below.
C++
#include <bits/stdc++.h>using namespace std;const int MAX = 100;// Function to check the if sum of a row// is same as corresponding columnbool areSumSame(int a[][MAX], int n, int m){ int sum1 = 0, sum2 = 0; for (int i = 0; i < min(n, m); i++) { sum1 = 0, sum2 = 0; for (int j = 0; j < min(n, m); j++) { sum1 += a[i][j]; sum2 += a[j][i]; } if (sum1 == sum2) return true; } return false;}// Driver Codeint main(){ int n = 4; // number of rows int m = 4; // number of columns int M[n][MAX] = { { 1, 2, 3, 4 }, { 9, 5, 3, 1 }, { 0, 3, 5, 6 }, { 0, 4, 5, 6 } }; cout << areSumSame(M, n, m) << "\n"; return 0;} |
Java
// Java program to check if there are two// adjacent set bits.public class GFG { // Function to check the if sum of a row // is same as corresponding column static boolean areSumSame(int a[][], int n, int m) { int sum1 = 0, sum2 = 0; for (int i = 0; i < n; i++) { sum1 = 0; sum2 = 0; for (int j = 0; j < m; j++) { sum1 += a[i][j]; sum2 += a[j][i]; } if (sum1 == sum2) return true; } return false; } // Driver code public static void main(String args[]) { int n = 4; // number of rows int m = 4; // number of columns int M[][] = { { 1, 2, 3, 4 }, { 9, 5, 3, 1 }, { 0, 3, 5, 6 }, { 0, 4, 5, 6 } }; if(areSumSame(M, n, m) == true) System.out.print("1\n"); else System.out.print("0\n"); }}// This code is contributed by Sam007. |
Python3
# Python3 program to check the if# sum of a row is same as # corresponding columnMAX = 100;# Function to check the if sum # of a row is same as# corresponding columndef areSumSame(a, n, m): sum1 = 0 sum2 = 0 for i in range(0, n): sum1 = 0 sum2 = 0 for j in range(0, m): sum1 += a[i][j] sum2 += a[j][i] if (sum1 == sum2): return 1 return 0# Driver Coden = 4; # number of rowsm = 4; # number of columnsM = [ [ 1, 2, 3, 4 ], [ 9, 5, 3, 1 ], [ 0, 3, 5, 6 ], [ 0, 4, 5, 6 ] ] print(areSumSame(M, n, m))# This code is contributed by Sam007. |
C#
// C# program to check if there are two// adjacent set bits.using System;class GFG { // Function to check the if sum of a row // is same as corresponding column static bool areSumSame(int [,]a, int n, int m) { int sum1 = 0, sum2 = 0; for (int i = 0; i < n; i++) { sum1 = 0; sum2 = 0; for (int j = 0; j < m; j++) { sum1 += a[i,j]; sum2 += a[j,i]; } if (sum1 == sum2) return true; } return false; } // Driver code public static void Main () { int n = 4; // number of rows int m = 4; // number of columns int [,] M = { { 1, 2, 3, 4 }, { 9, 5, 3, 1 }, { 0, 3, 5, 6 }, { 0, 4, 5, 6 } }; if(areSumSame(M, n, m) == true) Console.Write("1\n"); else Console.Write("0\n"); }}// This code is contributed by Sam007. |
PHP
<?php// Function to check the if // sum of a row is same as// corresponding column function areSumSame($a, $n, $m){ $sum1 = 0; $sum2 = 0; for($i = 0; $i < $n; $i++) { $sum1 = 0; $sum2 = 0; for($j = 0; $j < $m; $j++) { $sum1 += $a[$i][$j]; $sum2 += $a[$j][$i]; } if ($sum1 == $sum2) return true ; } return false ;}// Driver code$n = 4 ; // number of rows $m = 4 ; // number of columns $M = array(array(1, 2, 3, 4), array(9, 5, 3, 1), array(0, 3, 5, 6), array(0, 4, 5, 6));echo areSumSame($M, $n, $m) ;// This code is contributed// by ANKITRAI1?> |
Javascript
<script>// Java script program to check if there are two// adjacent set bits. // Function to check the if sum of a row // is same as corresponding column function areSumSame(a,n,m) { let sum1 = 0, sum2 = 0; for (let i = 0; i < n; i++) { sum1 = 0; sum2 = 0; for (let j = 0; j < m; j++) { sum1 += a[i][j]; sum2 += a[j][i]; } if (sum1 == sum2) return true; } return false; } // Driver code let n = 4; // number of rows let m = 4; // number of columns let M = [[1, 2, 3, 4 ], [ 9, 5, 3, 1], [ 0, 3, 5, 6 ], [ 0, 4, 5, 6 ]]; if(areSumSame(M, n, m) == true) document.write("1\n"); else document.write("0\n"); // This code is contributed by Bobby</script> |
1
Time Complexity: O(min(n, m) * min(n,m))
Auxiliary Space: O(1), since no extra space has been taken.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!
