diff options
| author | crupest <crupest@outlook.com> | 2021-02-22 23:52:44 +0800 | 
|---|---|---|
| committer | crupest <crupest@outlook.com> | 2021-02-22 23:52:44 +0800 | 
| commit | 8df912bc00a107e92471442f50da1c7d9c7c0ab6 (patch) | |
| tree | 406564c311087018c391e40461c793be159cc409 /works/solutions | |
| parent | d61f325fe86693414f416d364260ecde16703c2f (diff) | |
| download | crupest-8df912bc00a107e92471442f50da1c7d9c7c0ab6.tar.gz crupest-8df912bc00a107e92471442f50da1c7d9c7c0ab6.tar.bz2 crupest-8df912bc00a107e92471442f50da1c7d9c7c0ab6.zip | |
import(solutions): Add problem 766.
Diffstat (limited to 'works/solutions')
| -rw-r--r-- | works/solutions/cpp/766-2.cpp | 20 | ||||
| -rw-r--r-- | works/solutions/cpp/766.cpp | 44 | 
2 files changed, 64 insertions, 0 deletions
| diff --git a/works/solutions/cpp/766-2.cpp b/works/solutions/cpp/766-2.cpp new file mode 100644 index 0000000..79a0cc8 --- /dev/null +++ b/works/solutions/cpp/766-2.cpp @@ -0,0 +1,20 @@ +#include <vector>
 +
 +using std::vector;
 +
 +class Solution {
 +public:
 +  bool isToeplitzMatrix(vector<vector<int>> &matrix) {
 +    int row_count = matrix.size();
 +    int col_count = matrix.front().size();
 +
 +    for (int i = 1; i < row_count; i++) {
 +      for (int j = 1; j < col_count; j++) {
 +        if (matrix[i][j] != matrix[i - 1][j - 1])
 +          return false;
 +      }
 +    }
 +
 +    return true;
 +  }
 +};
\ No newline at end of file diff --git a/works/solutions/cpp/766.cpp b/works/solutions/cpp/766.cpp new file mode 100644 index 0000000..3e8a015 --- /dev/null +++ b/works/solutions/cpp/766.cpp @@ -0,0 +1,44 @@ +#include <algorithm>
 +#include <vector>
 +
 +using std::vector;
 +
 +class Solution {
 +public:
 +  bool isToeplitzMatrix(vector<vector<int>> &matrix) {
 +    int row_count = matrix.size();
 +    int col_count = matrix.front().size();
 +
 +    if (matrix.size() == 1)
 +      return true;
 +    if (matrix.front().size() == 1)
 +      return true;
 +
 +    // offset = col - row
 +    // max(offset) = row_count - 2
 +    // min(offset) = -(col_count - 2)
 +    for (int offset = -(col_count - 2); offset <= (row_count - 2); offset++) {
 +      int row, col;
 +      if (offset >= 0) {
 +        row = offset;
 +        col = 0;
 +      } else {
 +        row = 0;
 +        col = -offset;
 +      }
 +
 +      int value = matrix[row][col];
 +      row++;
 +      col++;
 +
 +      while (row < row_count && col < col_count) {
 +        if (matrix[row][col] != value) {
 +          return false;
 +        }
 +        row++;
 +        col++;
 +      }
 +    }
 +    return true;
 +  }
 +};
 | 
