1886. Determine Whether Matrix Can Be Obtained By Rotation LeetCode Solution
In this guide, you will get 1886. Determine Whether Matrix Can Be Obtained By Rotation LeetCode Solution with the best time and space complexity. The solution to Determine Whether Matrix Can Be Obtained By Rotation problem is provided in various programming languages like C++, Java, and Python. This will be helpful for you if you are preparing for placements, hackathons, interviews, or practice purposes. The solutions provided here are very easy to follow and include detailed explanations.
Table of Contents
- Problem Statement
- Complexity Analysis
- Determine Whether Matrix Can Be Obtained By Rotation solution in C++
- Determine Whether Matrix Can Be Obtained By Rotation solution in Java
- Determine Whether Matrix Can Be Obtained By Rotation solution in Python
- Additional Resources
Problem Statement of Determine Whether Matrix Can Be Obtained By Rotation
Given two n x n binary matrices mat and target, return true if it is possible to make mat equal to target by rotating mat in 90-degree increments, or false otherwise.
Example 1:
Input: mat = [[0,1],[1,0]], target = [[1,0],[0,1]]
Output: true
Explanation: We can rotate mat 90 degrees clockwise to make mat equal target.
Example 2:
Input: mat = [[0,1],[1,1]], target = [[1,0],[0,1]]
Output: false
Explanation: It is impossible to make mat equal to target by rotating mat.
Example 3:
Input: mat = [[0,0,0],[0,1,0],[1,1,1]], target = [[1,1,1],[0,1,0],[0,0,0]]
Output: true
Explanation: We can rotate mat 90 degrees clockwise two times to make mat equal target.
Constraints:
n == mat.length == target.length
n == mat[i].length == target[i].length
1 <= n <= 10
mat[i][j] and target[i][j] are either 0 or 1.
Complexity Analysis
- Time Complexity: O(n^2)
- Space Complexity: O(n^2)
1886. Determine Whether Matrix Can Be Obtained By Rotation LeetCode Solution in C++
class Solution {
public:
bool findRotation(vector<vector<int>>& mat, vector<vector<int>>& target) {
for (int i = 0; i < 4; ++i) {
if (mat == target)
return true;
rotate(mat);
}
return false;
}
private:
void rotate(vector<vector<int>>& mat) {
ranges::reverse(mat);
for (int i = 0; i < mat.size(); ++i)
for (int j = i + 1; j < mat.size(); ++j)
swap(mat[i][j], mat[j][i]);
}
};
/* code provided by PROGIEZ */
1886. Determine Whether Matrix Can Be Obtained By Rotation LeetCode Solution in Java
class Solution {
public boolean findRotation(int[][] mat, int[][] target) {
for (int i = 0; i < 4; ++i) {
if (Arrays.deepEquals(mat, target))
return true;
rotate(mat);
}
return false;
}
private void rotate(int[][] mat) {
for (int i = 0, j = mat.length - 1; i < j; ++i, --j) {
int[] temp = mat[i];
mat[i] = mat[j];
mat[j] = temp;
}
for (int i = 0; i < mat.length; ++i)
for (int j = i + 1; j < mat.length; ++j) {
final int temp = mat[i][j];
mat[i][j] = mat[j][i];
mat[j][i] = temp;
}
}
}
// code provided by PROGIEZ
1886. Determine Whether Matrix Can Be Obtained By Rotation LeetCode Solution in Python
class Solution:
def findRotation(self, mat: list[list[int]], target: list[list[int]]) -> bool:
for _ in range(4):
if mat == target:
return True
mat = [list(x) for x in zip(*mat[::-1])]
return False
# code by PROGIEZ
Additional Resources
- Explore all LeetCode problem solutions at Progiez here
- Explore all problems on LeetCode website here
Happy Coding! Keep following PROGIEZ for more updates and solutions.