832. Flipping an Image
LeetCode の挑戦ログ
Problem
https://leetcode.com/problems/flipping-an-image/
- バイナリマトリックス(二次元配列)が渡される
- 各行をひっくり返した後、反転させる
Solution
class Solution { public int[][] flipAndInvertImage(int[][] A) { return Arrays.stream(A) .map(this::flip) .map(this::invert) .collect(Collectors.toList()) .toArray(new int[][]{}); } private int[] flip(int[] array) { int[] flipped = new int[array.length]; int count = 0; for (int i = array.length; i > 0; i--) { flipped[count] = array[i - 1]; count++; } return flipped; } private int[] invert(int[] array) { return Arrays.stream(array).map(i -> i == 0 ? 1 : 0).toArray(); } }
Impressions
- flip は Collection にするより配列のままの方がやりやすそうだったのでそうした
- 問題とは関係ないが、多次元配列を文字列にするのに
Arrays#deepToString
があるのを知った- デバッグのとき便利