Welcome to Subscribe On Youtube
Formatted question description: https://leetcode.ca/all/2319.html
2319. Check if Matrix Is X-Matrix
- Difficulty: Easy.
- Related Topics: Array, Matrix.
- Similar Questions: Matrix Diagonal Sum.
Problem
A square matrix is said to be an X-Matrix if both of the following conditions hold:
-
All the elements in the diagonals of the matrix are non-zero.
-
All other elements are 0.
Given a 2D integer array grid
of size n x n
representing a square matrix, return true
** if grid
is an X-Matrix**. Otherwise, return false
.
Example 1:
Input: grid = [[2,0,0,1],[0,3,1,0],[0,5,2,0],[4,0,0,2]]
Output: true
Explanation: Refer to the diagram above.
An X-Matrix should have the green elements (diagonals) be non-zero and the red elements be 0.
Thus, grid is an X-Matrix.
Example 2:
Input: grid = [[5,7,0],[0,3,1],[0,5,0]]
Output: false
Explanation: Refer to the diagram above.
An X-Matrix should have the green elements (diagonals) be non-zero and the red elements be 0.
Thus, grid is not an X-Matrix.
Constraints:
-
n == grid.length == grid[i].length
-
3 <= n <= 100
-
0 <= grid[i][j] <= 105
Solution (Java, C++, Python)
-
class Solution { public boolean checkXMatrix(int[][] grid) { for (int i = 0; i < grid.length; i++) { for (int j = 0; j < grid[0].length; j++) { if (i == j || i + j == grid.length - 1) { if (grid[i][j] == 0) { return false; } } else { if (grid[i][j] != 0) { return false; } } } } return true; } } ############ class Solution { public boolean checkXMatrix(int[][] grid) { int n = grid.length; for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { if (i == j || i + j == n - 1) { if (grid[i][j] == 0) { return false; } } else if (grid[i][j] != 0) { return false; } } } return true; } }
-
class Solution: def checkXMatrix(self, grid: List[List[int]]) -> bool: for i, row in enumerate(grid): for j, v in enumerate(row): if i == j or i + j == len(grid) - 1: if v == 0: return False elif v: return False return True ############ # 2319. Check if Matrix Is X-Matrix # https://leetcode.com/problems/check-if-matrix-is-x-matrix class Solution: def checkXMatrix(self, grid: List[List[int]]) -> bool: rows, cols = len(grid), len(grid[0]) for i in range(rows): for j in range(cols): if i == j or i + j == cols - 1: if grid[i][j] == 0: return False elif grid[i][j] != 0: return False return True
-
class Solution { public: bool checkXMatrix(vector<vector<int>>& grid) { int n = grid.size(); for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { if (i == j || i + j == n - 1) { if (!grid[i][j]) { return false; } } else if (grid[i][j]) { return false; } } } return true; } };
-
func checkXMatrix(grid [][]int) bool { for i, row := range grid { for j, v := range row { if i == j || i+j == len(row)-1 { if v == 0 { return false } } else if v != 0 { return false } } } return true }
-
function checkXMatrix(grid: number[][]): boolean { const n = grid.length; for (let i = 0; i < n; ++i) { for (let j = 0; j < n; ++j) { if (i == j || i + j == n - 1) { if (!grid[i][j]) { return false; } } else if (grid[i][j]) { return false; } } } return true; }
-
public class Solution { public bool CheckXMatrix(int[][] grid) { int n = grid.Length; for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { if (i == j || i + j == n - 1) { if (grid[i][j] == 0) { return false; } } else if (grid[i][j] != 0) { return false; } } } return true; } }
-
impl Solution { pub fn check_x_matrix(grid: Vec<Vec<i32>>) -> bool { let n = grid.len(); for i in 0..n { for j in 0..n { if i == j || i + j == n - 1 { if grid[i][j] == 0 { return false; } } else if grid[i][j] != 0 { return false; } } } true } }
Explain:
nope.
Complexity:
- Time complexity : O(n).
- Space complexity : O(n).