题目地址:
https://leetcode.com/problems/flipping-an-image/
给定一个二维 0 − 1 0-1 0−1矩阵,要求将其每行水平翻转,并把 0 0 0处变为 1 1 1, 1 1 1处变为 0 0 0。代码如下:
public class Solution {
public int[][] flipAndInvertImage(int[][] A) {
for (int i = 0; i < A.length; i++) {
flip(A[i]);
invert(A[i]);
}
return A;
}
private void flip(int[] row) {
for (int i = 0, j = row.length - 1; i < j; i++, j--) {
int tmp = row[i];
row[i] = row[j];
row[j] = tmp;
}
}
private void invert(int[] row) {
for (int i = 0; i < row.length; i++) {
row[i] ^= 1;
}
}
}
时间复杂度 O ( n ) O(n) O(n), n n n为矩阵规模,空间 O ( 1 ) O(1) O(1)。
本文提供了一个LeetCode题目“翻转与反转图像”的解决方案,详细介绍了如何使用Java实现矩阵的水平翻转及0和1的反转,代码简洁高效,时间复杂度为O(n),空间复杂度为O(1)。

379

被折叠的 条评论
为什么被折叠?



