zoukankan      html  css  js  c++  java
  • 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.
     

    Example 1:

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

    Example 2:

    Input: matrix = [[1,2],[2,2]]
    Output: False
    Explanation:
    The diagonal "[1, 2]" has different elements.
    

    Note:

    1. matrix will be a 2D array of integers.
    2. matrix will have a number of rows and columns in range [1, 20].
    3. matrix[i][j] will be integers in range [0, 99].

    解题思路:

    乍一想可以从底部开始搜索,分两端搜索,一旦一斜行不相等即可返回false,但是这种方法代价太大。试一下:

    class Solution {
    public:
    bool isToeplitzMatrix(vector<vector<int>>& matrix) {

    if(matrix.size() == 1) return true;

    int temp;
    int temp_i,temp_j;
    for(int i=matrix[0].size()-2;i>=0;i--){
    temp = matrix[0][i];
    temp_i = 0;
    temp_j = i;
    while(temp_j<matrix[0].size()-1&&temp_i<matrix.size()-1){
    temp_i++;
    temp_j++;
    if(matrix[temp_i][temp_j] != temp) return false;
    }
    }

    for(int i=matrix.size()-1;i>0;i--){
    temp = matrix[i][0];
    temp_i = i;
    temp_j = 0;
    while(temp_j<matrix[0].size()-1&&temp_i<matrix.size()-1){
    temp_i++;
    temp_j++;
    if(matrix[temp_i][temp_j] != temp) return false;
    }
    }
    return true;

    }
    };

    可以跑了= =,不管了先。

  • 相关阅读:
    Codeforces Round #251 (Div. 2) A
    topcoder SRM 623 DIV2 CatAndRat
    topcoder SRM 623 DIV2 CatchTheBeatEasy
    topcoder SRM 622 DIV2 FibonacciDiv2
    topcoder SRM 622 DIV2 BoxesDiv2
    Leetcode Linked List Cycle II
    leetcode Linked List Cycle
    Leetcode Search Insert Position
    关于vim插件
    Codeforces Round #248 (Div. 2) B. Kuriyama Mirai's Stones
  • 原文地址:https://www.cnblogs.com/liangyc/p/8782455.html
Copyright © 2011-2022 走看看