Leetcodes Solution 36 Valid Sudoku

匯總

雪之下雪乃:leetcode解題總匯?

zhuanlan.zhihu.com圖標

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 ..

Note:

A valid Sudoku board (partially filled) is not necessarily solvable. Only the filled cells need to be validated.

思路1

Three flags are used to check whether a number appear.

used1: check each row

used2: check each column

used3: check each sub-boxes

class Solution{public: bool isValidSudoku(vector<vector<char>>& board){ int used1[9][9] = {0}, used2[9][9] = {0}, used3[9][9] = {0}; for(int i = 0; i < board.size(); ++i) for(int j = 0; j < board[i].size(); ++j) if(board[i][j] != .){ int num = board[i][j] - 0 - 1, k = i / 3 * 3 + j / 3; if(used1[i][num] || used2[j][num] || used3[k][num]) return false; used1[i][num] = used2[j][num] = used3[k][num] = 1; } return true; }};

推薦閱讀:

九章演算法 | Facebook 面試題 : 有手續費的買賣股票問題
BAT面試流程及技巧詳解 強烈推薦!
重建二叉樹
機器學習:神經網路的模型構建
RSA演算法詳解

TAG:演算法 | 數據結構 | 編程 |