832. Flipping an Image

LeetCode original: C# #array #csharp #leetcode #string
선택한 UI 언어에 맞게 문제 텍스트를 러시아어에서 번역합니다. 코드는 변경하지 않습니다.

: easy

given бинарное изображение размером n x n, необходимо перевернуть изображение по горизонтали, затем инвертировать его и вернуть результат.

Перевернуть изображение по горизонтали означает, что каждая 문자열 изображения будет развернута.

На예제, переворот строки [1,1,0] по горизонтали дает [0,1,1].

Инвертировать изображение означает, что каждый 0 заменяется на 1, а каждый 1 заменяется на 0.

На예제, инверсия строки [0,1,1] дает [1,0,0].

예제:

Input: image = [[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]]

C# 해법

매칭됨/원본
public class Solution {
    public int[][] FlipAndInvertImage(int[][] A) {
        int C = A[0].Length;
        foreach (var row in A) {
            for (int i = 0; i < (C + 1) / 2; ++i) {
                int tmp = row[i] ^ 1;
                row[i] = row[C - 1 - i] ^ 1;
                row[C - 1 - i] = tmp;
            }
        }
        return A;
    }
}

C++ 해법

자동 초안, 제출 전 검토
#include <bits/stdc++.h>
using namespace std;

// Auto-generated C++ draft from the C# solution. Review containers, LINQ and helper types before submit.
class Solution {
public:
    public int[][] FlipAndInvertImage(int[][] A) {
        int C = A[0].size();
        foreach (var row in A) {
            for (int i = 0; i < (C + 1) / 2; ++i) {
                int tmp = row[i] ^ 1;
                row[i] = row[C - 1 - i] ^ 1;
                row[C - 1 - i] = tmp;
            }
        }
        return A;
    }
}

Java 해법

자동 초안, 제출 전 검토
import java.util.*;
import java.math.*;

// Auto-generated Java draft from the C# solution. Review API differences before LeetCode submit.
public class Solution {
    public int[][] FlipAndInvertImage(int[][] A) {
        int C = A[0].length;
        foreach (var row in A) {
            for (int i = 0; i < (C + 1) / 2; ++i) {
                int tmp = row[i] ^ 1;
                row[i] = row[C - 1 - i] ^ 1;
                row[C - 1 - i] = tmp;
            }
        }
        return A;
    }
}

JavaScript 해법

매칭됨/원본
var flipAndInvertImage = function(A) {
    const C = A[0].length;

    for (let row of A) {
        for (let i = 0; i < Math.floor((C + 1) / 2); ++i) {
            let temp = row[i] ^ 1;
            row[i] = row[C - 1 - i] ^ 1;
            row[C - 1 - i] = temp;
        }
    }

    return A;

Python 해법

매칭됨/원본
class Solution:
    def flipAndInvertImage(self, A: List[List[int]]) -> List[List[int]]:
        C = len(A[0])

        for row in A:
            for i in range((C + 1) // 2):
                row[i], row[C - 1 - i] = row[C - 1 - i] ^ 1, row[i] ^ 1

Go 해법

매칭됨/원본
func flipAndInvertImage(A [][]int) [][]int {
    C := len(A[0])

    for _, row := range A {
        for i := 0; i < (C+1)/2; i++ {
            row[i], row[C-1-i] = row[C-1-i]^1, row[i]^1
        }
    }

    return A
}

Algorithm

Переreturn каждую строку по горизонтали, обменяв elementы слева направо и наоборот.

Инвертируйте каждую строку, заменив каждый 0 на 1 и каждый 1 на 0.

return преобразованное изображение.

😎

Vacancies for this task

활성 채용 with overlapping task tags are 표시됨.

전체 채용
아직 활성 채용이 없습니다.