每日一道算法Day16

246 阅读1分钟

题目描述

截屏2021-08-11 下午10.18.29.png

大致思路:

比较相邻的两个数组中第一个数组的 [0, len - 1]与第二个数组的 [1, len]这一段的数组值是否相同, 相同及满足条件。

代码如下:

function isToeplitzMatrix(matrix: number[][]): boolean {
  //比较两个数组内容的辅助函数
  const comparison = (arr1: number[], arr2: number[]) => {
    if (arr1.length !== arr2.length) return false;
    for (let i = 0; i < arr1.length; i++) {
      if (arr1[i] !== arr2[i]) return false;
    }
    return true;
  };

  const itemLen = matrix[0].length;
  for (let i = 0; i < matrix.length - 1; ++i) {
    const arr1 = matrix[i].slice(0, itemLen - 1);
    const arr2 = matrix[i + 1].slice(1, itemLen);
    const diff = comparison(arr1, arr2);
    if (!diff) {
      console.log('123');
      return false;
    }
  }
  return true;
}