LeetCode - 翻转图像

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%的结果。

本文分享自微信公众号 - 曌的晓痴(gh_543795945efe)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券