Flipping an Image
Problem
Given an n x n
binary matrix image
, 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]
.
Constraints
n == image.length
n == image[i].length
1 <= n <= 20
images[i][j]
is either0
or1
.
Solution
The problem Flipping an Image
can be solved by simply reversing and inverting the image as per problem instruction.
Implementation
static const int fast_io = []()
{
std::ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
return 0;
}();
class Solution
{
public:
vector<vector<int>> flipAndInvertImage(vector<vector<int>> &image)
{
int len = image.size();
for (int i = 0; i < len; i++)
for (int j = 0; j < round(len / 2.0); j++)
{
int temp = image[i][j];
image[i][j] = 1 - image[i][len - 1 - j];
image[i][len - 1 - j] = 1 - temp;
}
return image;
}
};