博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【leetcode】Valid Sudoku (easy)
阅读量:7071 次
发布时间:2019-06-28

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

题目:就是判断已有的数字是否冲突无效,若无效返回flase 有效返回true 不要求sudo可解

用了char型的数字,并且空格用‘.'来表示的。

 

思路:只要分别判断横向 竖向 3*3小块中的数字是否有重复或者无效就可以了  就是单纯的麻烦 不难

#include
#include
using namespace std;class Solution {public: bool isValidSudoku(vector
> &board) { vector
hash; //纵向判断 for(int c = 0; c < 9; c++) //对每一列判断 { hash.clear(); hash.resize(10); //每次判断前 hash要清零 for(int r = 0; r < 9; r++) { if(board[r][c] == '.') //空白跳过 { continue; } else if(board[r][c] <= '9' && board[r][c] >= '0') //是数字 { if(hash[board[r][c] - '0'] != 0) //若已经有过 无效 { return false; } else { hash[board[r][c] - '0']++; } } else //不是空白 不是数字 无效 { return false; } } } //横向判断 for(int r = 0; r < 9; r++) //对每一行判断 { hash.clear(); hash.resize(10); for(int c = 0; c < 9; c++) { if(board[r][c] == '.') { continue; } else if(board[r][c] <= '9' && board[r][c] >= '0') { if(hash[board[r][c] - '0'] != 0) { return false; } else { hash[board[r][c] - '0']++; } } else { return false; } } } //小矩形判断 hash.clear(); hash.resize(10); for(int r = 0; r < 9; r+=3) //对每一行判断 { for(int c = 0; c < 9; c+=3) { hash.clear(); hash.resize(10); for(int rr = r; rr < r + 3; rr++) { for(int cc = c; cc < c + 3; cc++) { if(board[rr][cc] == '.') { continue; } else if(board[rr][cc] <= '9' && board[rr][cc] >= '0') { if(hash[board[rr][cc] - '0'] != 0) { return false; } else { hash[board[rr][cc] - '0']++; } } else { return false; } } } } } return true; }};int main(){ Solution s; vector
> sudo; vector
sub; char c; for(int i = 0; i < 9; i++) { sub.clear(); for(int j = 0; j < 9; j++) { scanf("%c ", &c); sub.push_back(c); } sudo.push_back(sub); } bool b = s.isValidSudoku(sudo); return 0;}

 

转载地址:http://qmzml.baihongyu.com/

你可能感兴趣的文章
组托管服务帐户(Group Managed Service Accounts,即gMSAs)
查看>>
mysql体系架构
查看>>
Docker如何管理数据
查看>>
Apache所有项目介绍
查看>>
Puppet apply命令参数介绍(五)
查看>>
linux系统命令su和su - 区别验证
查看>>
VMware vCloud Director Administration Guide
查看>>
pptpd *** 老是连接不上内网排错
查看>>
图文并茂超详细搭建redis缓存服务器(nginx+tomcat+redis+mysql实现session会话共享)
查看>>
云计算大数据(Hadoop)开发工程师项目实战视频教程(九部分)
查看>>
Verizon:2012年数据破坏调查报告
查看>>
《iPhone与iPad开发实战—iOS经典应用剖析》连载四
查看>>
手动完成输入校验
查看>>
直击Dell World 2014: 戴尔现在挺好的
查看>>
⑨③-不能浪费拥有的年轻资本
查看>>
自定义编译安装python简单笔记。
查看>>
书摘—极致产品
查看>>
5.10-17项目经理考试圆梦提分现场面授行动
查看>>
IT项目中存储设备的选型
查看>>
esxi报错There is no more space for virtual disk--逻辑卷缩减!
查看>>