一、预知识点
二、题目
1、832. 翻转图像
题目
class Solution {
public :
void swap ( int & a, int & b) {
a= a^ b;
b= a^ b;
a= a^ b;
}
vector< vector< int >> flipAndInvertImage ( vector< vector< int >> & image) {
int n= image. size ( ) ;
for ( int i= 0 ; i< n; i++ ) {
for ( int j= 0 ; j< n/ 2 ; j++ ) {
swap ( image[ i] [ j] , image[ i] [ n- 1 - j] ) ;
image[ i] [ j] ^= 1 ;
image[ i] [ n- 1 - j] ^= 1 ;
}
}
if ( n% 2 ) {
for ( int k= 0 ; k< n; k++ ) image[ k] [ n/ 2 ] ^= 1 ;
}
return image;
}
} ;
2、867. 转置矩阵
题目
class Solution {
public :
vector< vector< int >> transpose ( vector< vector< int >> & matrix) {
int m= matrix. size ( ) ;
int n= matrix[ 0 ] . size ( ) ;
vector< vector< int >> tmatrix ( n, vector< int > ( m) ) ;
for ( int i= 0 ; i< m; i++ ) {
for ( int j= 0 ; j< n; j++ ) {
tmatrix[ j] [ i] = matrix[ i] [ j] ;
}
}
return tmatrix;
}
} ;
3、566. 重塑矩阵
题目
class Solution {
public :
vector< vector< int >> matrixReshape ( vector< vector< int >> & mat, int r, int c) {
int m= mat. size ( ) ;
int n= mat[ 0 ] . size ( ) ;
if ( m* n!= r* c)
return mat;
vector< vector< int >> array ( r, vector< int > ( c) ) ;
for ( int i= 0 ; i< m* n; i++ )
array[ i/ c] [ i% c] = mat[ i/ n] [ i% n] ;
return array;
}
} ;
4、2022. 将一维数组转变成二维数组
题目
class Solution {
public :
vector< vector< int >> construct2DArray ( vector< int > & original, int m, int n) {
vector< vector< int >> ans;
if ( original. size ( ) != m* n)
return ans;
for ( int i= 0 ; i< original. size ( ) ; i+= n) {
vector< int > tmp;
for ( int j= 0 ; j< n; j++ ) {
tmp. push_back ( original[ i+ j] ) ;
}
ans. push_back ( tmp) ;
}
return ans;
}
} ;
5、1260. 二维网格迁移
题目
在这里插入代码片
6、661. 图片平滑器
题目
class Solution {
public :
vector< vector< int >> imageSmoother ( vector< vector< int >> & img) {
int m = img. size ( ) , n = img[ 0 ] . size ( ) ;
vector< vector< int >> res ( m, vector< int > ( n) ) ;
for ( int i = 0 ; i < m; i++ ) {
for ( int j = 0 ; j < n; j++ ) {
int num = 0 , sum = 0 ;
for ( int x = i - 1 ; x <= i + 1 ; x++ ) {
for ( int y = j - 1 ; y <= j + 1 ; y++ ) {
if ( x >= 0 && x < m && y >= 0 && y < n) {
num++ ;
sum += img[ x] [ y] ;
}
}
}
res[ i] [ j] = sum/ num;
}
}
return res;
}
} ;
7、1314. 矩阵区域和
题目
在这里插入代码片
8、1030. 距离顺序排列矩阵单元格
题目
在这里插入代码片
三、收获
四、参考