[LeetCode] 36. Valid Sudoku
来源:互联网 发布:金山恢复数据恢复软件 编辑:程序博客网 时间:2024/06/05 17:25
Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules.
The Sudoku board could be partially filled, where empty cells are filled with the character '.'
.
A partially filled sudoku which is valid.
问题描述:
确定一个Sudoku是否是有效的。
一个Sudoku是一个9 x 9的方格,又被分成9个3 x 3的方格。
具体的规则为
a) 每行上只能出现1-9之间的数字,并且每个数字至多被使用一次。但是可以选择不填,如若不填,则以’.‘表示。
b) 每列上同理
c) 每个3 x 3方格内同理
思路核心:
// 总共有9行,每行允许出现的数字总共9个。// 每当我们处理一个元素的时候,RowAlreadyExist[该元素所在的行][该元素] = True;表明在该行上该元素已经使用过了。// 列的情况类似// 对于3x3的中方格,我们从左到右、从上到下,依次给每个中方格编号,0,1, ..., 8// 具体换算公式为k = i / 3 * 3 + j / 3;bool isValidSudoku(vector<vector<char>>& board) { bool RowAlreadyExist[9][9] = {false}, ColAlreadyExist[9][9] = {false},
SubBoxAlreadyExist[9][9] = {false};for (int i = 0; i < board.size(); i++) { for (int j = 0; j < board[i].size(); j++) { if (board[i][j] == '.') continue; int num = board[i][j] - '1'; int k = i / 3 * 3 + j / 3; if (RowAlreadyExist[i][num] || ColAlreadyExist[j][num] || SubBoxAlreadyExist[k][num]) return false; RowAlreadyExist[i][num] = ColAlreadyExist[j][num] = SubBoxAlreadyExist[k][num] = true; } } return true; }
阅读全文
0 0
- [LeetCode]36.Valid Sudoku
- LeetCode --- 36. Valid Sudoku
- LeetCode 36.Valid Sudoku
- [Leetcode] 36. Valid Sudoku
- 【leetcode】36. Valid Sudoku
- [leetcode] 36. Valid Sudoku
- Leetcode 36. Valid Sudoku
- 36. Valid Sudoku LeetCode
- leetcode 36. Valid Sudoku
- LeetCode *** 36. Valid Sudoku
- leetcode 36. Valid Sudoku
- [LeetCode]36. Valid Sudoku
- LeetCode 36. Valid Sudoku
- leetcode-36. Valid Sudoku
- 36.[Leetcode]Valid Sudoku
- Leetcode 36.Valid Sudoku
- LeetCode-36.Valid Sudoku
- leetcode 36. Valid Sudoku
- Rabbitmq应用文档
- 机器学习知识点(三十七)特征选择方法总结
- Java基本数据类型深入解析
- 简单排序算法时间空间复杂度分析及应用(5)-堆排序
- 进行curl请求需要主要的问题
- [LeetCode] 36. Valid Sudoku
- 通过 Oracle 日志文件了解 CRS 的启动过程
- iOS开发——完整项目实战Swift篇&百思不得姐Swift版总结(一)
- 详细介绍Logger日志
- Jvav 中Synchronized的使用
- CI持续集成系统环境---部署Jenkins完整记录
- java 笔记
- strlen与sizeof区别
- web1.0与web2.0的区别介绍附举例