龙空技术网

「LeetCode」翻转图像Java题解

Prada 61

前言:

今天姐妹们对“java实现数字反转逆序输出”可能比较珍视,姐妹们都想要剖析一些“java实现数字反转逆序输出”的相关知识。那么小编在网络上网罗了一些关于“java实现数字反转逆序输出””的相关知识,希望兄弟们能喜欢,我们一起来了解一下吧!

题目

给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。

水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, 1]。

反转图片的意思是图片中的 0 全部被 1 替换, 1 全部被 0 替换。例如,反转 [0, 1, 1] 的结果是 [1, 0, 0]。

代码

public class DayCode {    public static void main(String[] args) {        int[][] arr = new int[][]{                {1,1,0},{1,0,1},{0,0,0}        };        int[][] ans = new DayCode().flipAndInvertImage(arr);        System.out.println("ans is " + Arrays.deepToString(ans));    }    /**     *      * 时间复杂度O(n)     * 空间复杂度O(1)     * @param A     * @return     */    public int[][] flipAndInvertImage(int[][] A) {        int n = A.length;        for (int i = 0; i < n; i++) {            int left = 0;            int right = n - 1;            while (left < right) {                if (A[i][left] == A[i][right]) {                    A[i][left] ^= 1;                    A[i][right] ^= 1;                }                left++;                right--;            }            if (left == right) {                A[i][left] ^= 1;            }        }        return A;    }}

总结

* 这个题目容易理解,按照题意写代码逻辑即可。

* 题目应用了位运算,^需要熟悉使用。

* 每日坚持一题,加油!

标签: #java实现数字反转逆序输出 #java图像旋转算法