在矩阵中找到唯一的元素

给定一个矩阵mat[][]有n行和m列。我们需要在矩阵中找到唯一的元素,即矩阵中不重复的元素或频率为1的元素。

null

例如:

Input :  20  15  30  2         2   3   5   30         6   7   6   8Output : 3  20  5  7  8  15 Input :  1  2  3           5  6  2         1  3  5         6  2  2Output : No unique element in the matrix

按照以下步骤查找唯一元素: 1.创建一个空哈希表或字典。 2.遍历矩阵的所有元素 3.如果字典中存在元素,则增加其计数 4.否则,插入值为1的元素。

C++

// C++ program to find unique
// element in matrix
#include<bits/stdc++.h>
using namespace std;
#define R 4
#define C 4
// function that calculate unique element
int unique( int mat[R][C], int n, int m)
{
int maximum = 0, flag = 0;
for ( int i = 0; i < n; i++)
for ( int j = 0; j < m; j++)
// Find maximum element in
// a matrix
if (maximum < mat[i][j])
maximum = mat[i][j];
// Take 1-D array of (maximum + 1)
// size
int b[maximum + 1] = {0};
for ( int i = 0 ; i < n; i++)
for ( int j = 0; j < m; j++)
b[mat[i][j]]++;
//print unique element
for ( int i = 1; i <= maximum; i++)
if (b[i] == 1)
cout << i << " " ;
flag = 1;
if (!flag){
cout << "No unique element in the matrix" ;
}
}
// Driver program
int main()
{
int mat[R][C] = {{ 1, 2, 3, 20},
{5, 6, 20, 25},
{1, 3, 5, 6},
{6, 7, 8, 15}};
// function that calculate unique element
unique(mat, R, C);
return 0;
}
// This code is contributed by Naman_Garg.


JAVA

// Java program to find unique
// element in matrix
class GFG
{
static int R = 4 , C = 4 ;
// function that calculate
// unique element
static void unique( int mat[][],
int n, int m)
{
int maximum = 0 , flag = 0 ;
for ( int i = 0 ; i < n; i++)
for ( int j = 0 ; j < m; j++)
// Find maximum element
// in a matrix
if (maximum < mat[i][j])
maximum = mat[i][j];
// Take 1-D array of
// (maximum + 1) size
int b[] = new int [maximum + 1 ];
for ( int i = 0 ; i < n; i++)
for ( int j = 0 ; j < m; j++)
b[mat[i][j]]++;
//print unique element
for ( int i = 1 ; i <= maximum; i++)
if (b[i] == 1 )
System.out.print(i + " " );
flag = 1 ;
if (flag == 0 )
{
System.out.println( "No unique element " +
"in the matrix" );
}
}
// Driver Code
public static void main(String args[])
{
int mat[][] = {{ 1 , 2 , 3 , 20 },
{ 5 , 6 , 20 , 25 },
{ 1 , 3 , 5 , 6 },
{ 6 , 7 , 8 , 15 }};
// function that calculate
// unique element
unique(mat, R, C);
}
}
// This code is contributed
// by Arnab Kundu


Python3

# Python 3 program to find unique
# element in matrix
def unique(mat, n, m):
maximum = 0 ; flag = 0
for i in range ( 0 , n):
for j in range ( 0 , m):
# Find maximum element in
# a matrix
if (maximum < mat[i][j]):
maximum = mat[i][j];
uniqueElementDict = [ 0 ] * (maximum + 1 )
# loops to traverse through the matrix
for i in range ( 0 , n):
for j in range ( 0 , m):
uniqueElementDict[mat[i][j]] + = 1
# Print all those keys whose count is 1
for key in range (maximum + 1 ):
if uniqueElementDict[key] = = 1 :
print (key, end = " " )
flag = 1
if (flag = = 0 ):
print ( "No unique element in the matrix" )
# Driver Code
mat = [[ 1 , 2 , 3 , 20 ],
[ 5 , 6 , 20 , 25 ],
[ 1 , 3 , 5 , 6 ],
[ 6 , 7 , 8 , 15 ]]
n = 4
m = 4
unique(mat, n, m)


C#

// C# program to find unique
// element in matrix
using System;
class GFG
{
static int R = 4, C = 4;
// function that calculate
// unique element
static void unique( int [,]mat,
int n, int m)
{
int maximum = 0, flag = 0;
for ( int i = 0; i < n; i++)
for ( int j = 0; j < m; j++)
// Find maximum element
// in a matrix
if (maximum < mat[i, j])
maximum = mat[i, j];
// Take 1-D array of
// (maximum + 1) size
int []b = new int [maximum + 1];
for ( int i = 0 ; i < n; i++)
for ( int j = 0; j < m; j++)
b[mat[i, j]]++;
// print unique element
for ( int i = 1; i <= maximum; i++)
if (b[i] == 1)
Console.Write(i + " " );
flag = 1;
if (flag == 0)
{
Console.WriteLine( "No unique element " +
"in the matrix" );
}
}
// Driver Code
public static void Main()
{
int [,]mat = {{1, 2, 3, 20},
{5, 6, 20, 25},
{1, 3, 5, 6},
{6, 7, 8, 15}};
// function that calculate
// unique element
unique(mat, R, C);
}
}
// This code is contributed
// by Subhadeep


PHP

<?php
// PHP program to find unique
// element in matrix
$R = 4;
$C = 4;
// function that calculate unique element
function unique( $mat , $n , $m )
{
$maximum = 0;
$flag = 0;
for ( $i = 0; $i < $n ; $i ++)
for ( $j = 0; $j < $m ; $j ++)
// Find maximum element in
// a matrix
if ( $maximum < $mat [ $i ][ $j ])
$maximum = $mat [ $i ][ $j ];
// Take 1-D array of (maximum + 1)
// size
$b = array ();
for ( $j = 0; $j < $maximum + 1; $j ++)
$b [ $j ] = 0;
for ( $i = 0 ; $i < $n ; $i ++)
for ( $j = 0; $j < $m ; $j ++)
$b [ $mat [ $i ][ $j ]]++;
// print unique element
for ( $i = 1; $i <= $maximum ; $i ++)
if ( $b [ $i ] == 1)
echo "$i " ;
$flag = 1;
if (! $flag )
{
echo "No unique element in the matrix" ;
}
}
// Driver Code
$mat = array ( array (1, 2, 3, 20),
array (5, 6, 20, 25),
array (1, 3, 5, 6),
array (6, 7, 8, 15));
// function that calculate unique element
unique( $mat , $R , $C );
// This code is contributed by iAyushRaj
?>


Javascript

<script>
// Javascript program to find unique
// element in matrix
var R = 4, C = 4;
// Function that calculate
// unique element
function unique(mat, n, m)
{
var maximum = 0, flag = 0;
for ( var i = 0; i < n; i++)
for ( var j = 0; j < m; j++)
// Find maximum element
// in a matrix
if (maximum < mat[i][j])
maximum = mat[i][j];
// Take 1-D array of
// (maximum + 1) size
var b = Array(maximum+1).fill(0);
for ( var i = 0 ; i < n; i++)
for ( var j = 0; j < m; j++)
b[mat[i][j]]++;
// Print unique element
for ( var i = 1; i <= maximum; i++)
if (b[i] == 1)
document.write(i + " " );
flag = 1;
if (flag == 0)
{
document.write( "No unique element " +
"in the matrix<br>" );
}
}
// Driver Code
var mat = [ [ 1, 2, 3, 20 ],
[ 5, 6, 20, 25 ],
[ 1, 3, 5, 6 ],
[ 6, 7, 8, 15 ] ];
// Function that calculate
// unique element
unique(mat, R, C);
// This code is contributed by rrrtnx
</script>


输出

2 7 8 15 25 

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享