算法题目-13周-算法题2道

1、Flipping an Image
Given a binary matrix A, we want to flip the image horizontally, then invert it, and return the resulting image.
To flip an image horizontally means that each row of the image is reversed. For example, flipping [1, 1, 0] horizontally results in [0, 1, 1].
To invert an image means that each 0 is replaced by 1, and each 1 is replaced by 0. For example, inverting [0, 1, 1] results in [1, 0, 0].

Example 1:

Input: [[1,1,0],[1,0,1],[0,0,0]]
Output: [[1,0,0],[0,1,0],[1,1,1]]
Explanation: First reverse each row: [[0,1,1],[1,0,1],[0,0,0]].
Then, invert the image: [[1,0,0],[0,1,0],[1,1,1]]

Example 2:

Input: [[1,1,0,0],[1,0,0,1],[0,1,1,1],[1,0,1,0]]
Output: [[1,1,0,0],[0,1,1,0],[0,0,0,1],[1,0,1,0]]
Explanation: First reverse each row: [[0,0,1,1],[1,0,0,1],[1,1,1,0],[0,1,0,1]].
Then invert the image: [[1,1,0,0],[0,1,1,0],[0,0,0,1],[1,0,1,0]]

Notes:

1 <= A.length = A[0].length <= 20
0 <= A[i][j] <= 1

代码

 public int[][] flipAndInvertImage(int[][] A) {
        for(int i=0;i<A.length;i++) {
            int[] new_array = new int[A[i].length]; 
            for(int j=0;j<A[i].length;j++) {
                new_array[j]= A[i][A[i].length-j-1]^1;
            }
            A[i] = new_array;
        }
        return A;
    }

注意:异或运算符是用符号“^”表示的,其运算规律是:
两个操作数的位中,相同则结果为0,不同则结果为1

2、Sort Array By Parity

Given an array A of non-negative integers, return an array consisting of all the even elements of A, followed by all the odd elements of A.

You may return any answer array that satisfies this condition.

Example 1:

Input: [3,1,2,4]
Output: [2,4,3,1]
The outputs [4,2,3,1], [2,4,1,3], and [4,2,1,3] would also be accepted.

Note:

1 <= A.length <= 5000
0 <= A[i] <= 5000

代码

    public int[] sortArrayByParity(int[] A) {
        
        int i = 0;
        int j = A.length-1;
        
        while(i<j){         
                if(A[i]%2!=0&&A[j]%2==0){
                    int tmp = A[j];
                    A[j] = A[i];
                    A[i] = tmp;
                }
                
                if(A[i]%2==0) i++;   
                if(A[j]%2!=0)  j--;                      
        }
         
        return A;
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,453评论 0 10
  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 9,967评论 0 23
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,516评论 0 13
  • 前面的文章里,我介绍了替儿子抄教科书的事情。今天又遇到儿子不愿读书的情况。 我观察了一下今天老师布...
    风中花絮儿阅读 328评论 0 0
  • 语宇妈成长日记第206天 折腾了两天,总算是给闺女创造了专属于她自己的“领地”。由于空间有限,所以将整个“领地”一...
    唐嘉阅读 89评论 0 1