-
Notifications
You must be signed in to change notification settings - Fork 0
/
2319.go
58 lines (53 loc) · 1.77 KB
/
2319.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
// Source: https://leetcode.com/problems/check-if-matrix-is-x-matrix
// Title: Check if Matrix Is X-Matrix
// Difficulty: Easy
// Author: Mu Yang <http://muyang.pro>
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 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:
//
// https://assets.leetcode.com/uploads/2022/05/03/ex1.jpg
//
// 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:
//
// https://assets.leetcode.com/uploads/2022/05/03/ex2.jpg
//
// 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] <= 10^5
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
package main
func checkXMatrix(grid [][]int) bool {
n := len(grid)
for i, row := range grid {
for j, val := range row {
isDiag := (i == j || i+j == n-1)
if (isDiag && val == 0) || (!isDiag && val != 0) {
return false
}
}
}
return true
}