260. 矩阵斜线上元素相同
描述
给定一个 n * n 的矩阵,如果每一条从左上到右下的斜线上的数值相同,返回 true, 否则返回false。
例如:
1,2,3
5,1,2
6,5,1
应该返回 true。
但
1,2,3
2,1,5
6,5,1
应该返回 false。
n within the range is: [1, 500]
您在真实的面试中是否遇到过这个题?
样例
样例1:
输入数据:[[1, 2, 3], [5, 1, 2], [6, 5, 1]]
输出数据:true
样例解释:每一条从左上到右下的斜线均是相同的元素,返回true。
样例2:
输入数据:[[1, 2, 3], [2, 1, 5], [6, 5, 1]]
输出数据:false
样例解释:第二条和第四条斜线是[2, 5]。这两条斜线不满足条件,返回false
public class Solution {
/**
* @param matrix: a matrix
* @return: return true if same.
*/
public boolean judgeSame(int[][] matrix) {
// write your code here.
for (int i=0; i<matrix.length;i++ ){
int flag=matrix[i][0];
for (int j=0;j<matrix[i].length ;j++ ){
int temp=i+j;
if(temp>=matrix.length)break;
if(flag!=matrix[temp][j])return false;
// System.out.print(matrix[i+j][j]+",");
}
// System.out.println("");
}
for (int j=1;j<matrix[0].length ;j++ ){
int flag=matrix[0][j];
for (int i=0; i<matrix.length;i++ ){
int temp=i+j;
if(temp>=matrix[i].length)break;
if(flag!=matrix[i][temp])return false;
// System.out.print(matrix[i][temp]+",");
}
// System.out.println("");
}
return true;
}
}