LeetCode第832题,难度简单。
原题地址:https://leetcode-cn.com/problems/flipping-an-image/
题目描述:
由于微信公众号认为我违反了原创规则,也就是和其他一个人发过的只有题目和代码的公众号文章冲突了,所以我这里就不写题目描述了,辛苦大家自己点开链接去看具体的题目描述了。
解题思路:
首先新建一个K,表示中间点,需要根据A的长度是否是偶数决定。
然后就是按照题目规则,遍历数组中的元素,根据当前的元素是0还是1,先设置一个临时值tmp,待会儿可以直接和A[i][j]对应的A[i][A.length - j - 1]交换值。一次遍历,就把水平翻转和反转图像给完成。
中文官网题解:
https://leetcode-cn.com/problems/flipping-an-image/solution/
个人题解:
class Solution {
public int[][] flipAndInvertImage(int[][] A) {
int k = A.length % 2 == 0? A.length /2 : A.length /2 + 1;
for (int i = 0; i < A.length; i++) {
for (int j = 0; j < k; j++) {
int tmp = A[i][j];
if(tmp == 0){
tmp = 1;
}else if(tmp == 1){
tmp = 0;
}
if(A[i][A.length - j - 1] == 0){
A[i][j] = 1;
}else if(A[i][A.length - j - 1] == 1){
A[i][j] = 0;
}
A[i][A.length - j - 1] = tmp;
}
}
return A;
}
}
结果:
又是一次完美的0ms加超过100%的结果。