博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode766
阅读量:6893 次
发布时间:2019-06-27

本文共 1323 字,大约阅读时间需要 4 分钟。

本题经过一下午的思考,终于解出来了。使用的是层次遍历的思想。

class Solution {public:    bool isToeplitzMatrix(vector
>& matrix) { int RowLen = matrix.size() - 1; int ColLen = matrix[0].size() - 1; int N = RowLen + ColLen; int i = RowLen; int j = 0; queue
> Q; Q.push(make_pair(i, j)); while (!Q.empty()) { //全部出队,加入vector vector
> V; while (!Q.empty()) { pair
p = Q.front(); Q.pop(); V.push_back(p); cout << p.first << " " << p.second << endl; } cout << "------------------------------------------" << endl; //遍历V int base = matrix[V[0].first][V[0].second]; set
> S; for (auto v : V) { //判断是否都是相同的数值 if (base != matrix[v.first][v.second]) { return false; } //判断“上”和“右”的元素是否合法, int Up_x = v.first - 1; int Up_y = v.second; //“上元素”合法则加入S(去重) if (Up_x >= 0 && 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 + 1; //“右元素”合法则加入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; }};

 

转载于:https://www.cnblogs.com/asenyang/p/9719923.html

你可能感兴趣的文章
Java的类型擦除
查看>>
好程序员web前端教程分享js闭包
查看>>
可以给redis的hash中的hashKey设置expire吗?
查看>>
Python获取本机 IP/MAC(多网卡)
查看>>
jQuery EasyUI 学习资料链接整理
查看>>
iOS textView 选中指向左上角
查看>>
OpenSSL学习(十二):基础-指令gendsa
查看>>
vscode 如何创建自定义代码片段
查看>>
mac:python:pycharm:osx:可怕的case-sensitive硬盘格式
查看>>
绑定程序集
查看>>
Java Programming Review (1)
查看>>
chrome离线安装包
查看>>
MySQL备份与恢复
查看>>
Unsupported major.minor version
查看>>
PHP框架高级编程——应用Symfony、CakePHP和Zend
查看>>
读取xml节点值生成一个实体类,读取xml所有节点值,读取所有xml所有节点名称
查看>>
优秀的Java程序员必须了解GC的工作原理
查看>>
nodejs踩坑日记,持续更新
查看>>
项目部署时一些常见linux命令和遇到的问题
查看>>
RAC 归档目录不同的备份
查看>>