leetcode766
本题经过一下午的思考,终于解出来了。使用的是层次遍历的思想。
class Solution {
public:
bool isToeplitzMatrix(vector<vector<int>>& matrix) {
int RowLen = matrix.size() - ;
int ColLen = matrix[].size() - ;
int N = RowLen + ColLen;
int i = RowLen;
int j = ;
queue<pair<int, int>> Q;
Q.push(make_pair(i, j));
while (!Q.empty())
{
//全部出队,加入vector
vector<pair<int, int>> V;
while (!Q.empty())
{
pair<int, int> p = Q.front();
Q.pop();
V.push_back(p);
cout << p.first << " " << p.second << endl;
}
cout << "------------------------------------------" << endl;
//遍历V
int base = matrix[V[].first][V[].second];
set<pair<int, int>> S;
for (auto v : V)
{
//判断是否都是相同的数值
if (base != matrix[v.first][v.second])
{
return false;
}
//判断“上”和“右”的元素是否合法,
int Up_x = v.first - ;
int Up_y = v.second;
//“上元素”合法则加入S(去重)
if (Up_x >= && S.find(make_pair(Up_x, Up_y)) == S.end())
{
S.insert(make_pair(Up_x, Up_y));
}
int Right_x = v.first;
int Right_y = v.second + ;
//“右元素”合法则加入S(去重)
if (Right_y <= ColLen && S.find(make_pair(Right_x, Right_y)) == S.end())
{
S.insert(make_pair(Right_x, Right_y));
}
}
//将S中的元素,添加到Q中
for (auto s : S)
{
Q.push(s);
}
}
return true;
}
};
leetcode766的更多相关文章
- [Swift]LeetCode766. 托普利茨矩阵 | Toeplitz Matrix
A matrix is Toeplitz if every diagonal from top-left to bottom-right has the same element. Now given ...
- 算法22-----托普利茨矩阵leetcode766
1.题目 如果一个矩阵的每一方向由左上到右下的对角线上具有相同元素,那么这个矩阵是托普利茨矩阵. 给定一个 M x N 的矩阵,当且仅当它是托普利茨矩阵时返回 True. 示例 1: 输入: matr ...
- Leetcode766.Toeplitz Matrix托普利茨矩阵
如果一个矩阵的每一方向由左上到右下的对角线上具有相同元素,那么这个矩阵是托普利茨矩阵. 给定一个 M x N 的矩阵,当且仅当它是托普利茨矩阵时返回 True. 示例 1: 输入: matrix = ...
随机推荐
- OLED取模笔记
- 条款25:考虑写出一个不抛出异常的swap函数
首先说下标准库的swap算法: namespace std{ template<typename T> void swap(T & a, T & b) { T tmp = ...
- redis 内存库设置 教你怎么解决64位Windows版Redis狂占C盘的问题.
http://blog.csdn.net/renfufei/article/details/41180007 # heapdir指定内存映射文件路径名,不能是文件名 # heapdir <dir ...
- Mac os x 下配置Intellij IDEA + Tomcat 出现权限问题的解决办法
出现的错误提示如下: 下午9:11:27 All files are up-to-date下午9:11:27 All files are up-to-date下午9:11:27 Error runni ...
- WEKA中的数据预处理
数据预处理包括数据的缺失值处理.标准化.规范化和离散化处理. 数据的缺失值处理:weka.filters.unsupervised.attribute.ReplaceMissingValues. 对于 ...
- 转: Photon 3.4 Changed Logs ..
最新版了.修了很多bug. Photon 3.4 http://doc.exitgames.com/en/onpremise/current/reference/version-history/pho ...
- [QT][问题]关于QT语言家使用失败的原因之一
按照标准的qt使用教程 ( http://www.qter.org/forum.php?mod=viewthread&tid=781 ) 实践了下,发现除去主界面外,点开的窗口多语言没有问题. ...
- VC++6.0/MFC中如何限制Edit控件输入 例子,只能输入0和1
1.Insert -> New Class -> 在Base Class中选择CEdit,在Name中输入CMyEdit. 2.在左边的ClassView中,右键击CMyEdit,选择Ad ...
- NOI 2018 你的名字
因为机房里的小伙伴都在看<你的名字.>而我不想看 所以来写了这道题... 给一个 $S$ 串,$q$ 次询问,每次一个 $T$ 串,问 $T$ 有多少没在 $S[l,r]$ 中以子串形式出 ...
- iOS开发单例模式 dispatch_once
什么是单例 单例模式是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例类的特殊类.通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源 ...