题目来源
题目描述
题目解析
模拟
c++
class Solution {
public:
vector<vector<int>> flipAndInvertImage(vector<vector<int>>& image) {
vector<vector<int>> vec(image.size(), vector<int>(image[0].size(), 0));
int ele, idx;
for (int i = 0; i < image.size(); ++i) {
idx = 0;
for (int j = image[i].size() - 1; j > -1 ; --j) {
ele = image[i][j];
vec[i][idx++] = 1 - ele;
}
}
return vec;
}
};
java
public static int[][] flipAndInvertImage(int[][] A) {
int [][] b = new int[A.length][];
for (int i = 0; i < A.length; i++){
int n = A[i].length;
int c = 0;
b[i] = new int[n];
for (int j = n - 1; j > -1; j--){
int v = A[i][j];
if (v == 1){
b[i][c++] = 0;
}else{
b[i][c++] = 1;
}
}
}
return b;
}
优化
public int[][] flipAndInvertImage(int[][] A) {
for (int i = 0; i < A.length; i++){
int n = A[i].length;
for (int j = 0; j < n / 2 ; j++){
int temp = A[i][j];
A[i][j] = 1 - A[i][n - 1 - j];
A[i][n - 1 - j] = 1 - temp;
}
if (n % 2 != 0){
A[i][n / 2] = 1 - A[i][n / 2];
}
}
return A;
}
https://leetcode-cn.com/problems/flipping-an-image/