leetCode刷题记录之766 Toeplitz Matrix

题目描述

A matrix is Toeplitz if every diagonal from top-left to bottom-right has the same element.
Now given an M x N matrix, return True if and only if the matrix is Toeplitz.

给的用例

Input:
matrix = [
  [1,2,3,4],
  [5,1,2,3],
  [9,5,1,2]
]
Output: True
Explanation:
In the above grid, the diagonals are:
"[9]", "[5, 5]", "[1, 1, 1]", "[2, 2, 2]", "[3, 3]", "[4]".
In each diagonal all elements are the same, so the answer is True.

题目说明

就是数字矩阵的斜线上的元素要相等,其实看用例就能看出来

我的代码

/**
 * @param {number[][]} matrix
 * @return {boolean}
 */
var isToeplitzMatrix = function(matrix) {
	 //这里把二维数组转成一维数组,这样所谓的斜线元素其实就是当前元素往后移动每行的元素个数再加1的那个元素,
	 //但要注意二维数组每行的最后一个元素不需要判断,我觉得这样搞好理解一些
	var colLength = matrix[0].length;	
	var newArray = [].concat.apply([],matrix); // 二维转一维
	for(var index = 0; index < newArray.length - colLength; index++)
	{
		if((index + 1) % colLength == 0) continue; // 这里的作用是排除二维数组中每行的最后一个元素,它对应的一维数组的写法就是这样
		if(newArray[index] != newArray[index + colLength + 1])
		{
			return false;
		}	
	}	
	return true;
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值