Re: [閒聊] 每日LeetCode
※ 引述《Rushia (みけねこ的鼻屎)》之銘言:
: 36. Valid Sudoku
: 給你一個二維字元陣列表示一個數獨,包含1~9和表示空白的.字元,一個合法數獨
: 滿足以下條件:
: 1.每行和每列最多出現一種數字一次
: 2.一個3x3九宮格內只會出現一種數字一次
: 3.數獨可能無解(無法填滿數字),但是只有滿足1或2才是Invalid
: 判斷給定的棋盤是否是一個合法數獨
: Example:
: https://upload.wikimedia.org/wikipedia/commons/thumb/f/ff/Sudoku-by-L2G-20050714.svg/250px-Sudoku-by-L2G-20050714.svg.png
: Input: board =
: [["5","3",".",".","7",".",".",".","."]
: ,["6",".",".","1","9","5",".",".","."]
: ,[".","9","8",".",".",".",".","6","."]
: ,["8",".",".",".","6",".",".",".","3"]
: ,["4",".",".","8",".","3",".",".","1"]
: ,["7",".",".",".","2",".",".",".","6"]
: ,[".","6",".",".",".",".","2","8","."]
: ,[".",".",".","4","1","9",".",".","5"]
: ,[".",".",".",".","8",".",".","7","9"]]
: Output: true
可惡 就我用最基礎的方法
思路就一樣是用set檢查每行和每列是否有重複 再檢查每個 3 * 3 區塊是否有重複
幸好九宮格的大小都固定所以套四層迴圈也沒關係
------
C++ code:
class Solution {
public:
bool isValidSudoku(vector<vector<char>>& board) {
for (int i = 0; i < 9; i++) {
set<char> mySet1;
set<char> mySet2;
for (int j = 0; j < 9; j++) {
if (board[i][j] != '.') {
if (mySet1.count(board[i][j])) return false;
else mySet1.insert(board[i][j]);
}
if (board[j][i] != '.') {
if (mySet2.count(board[j][i])) return false;
else mySet2.insert(board[j][i]);
}
}
mySet1.clear();
mySet2.clear();
}
for (int i = 0; i < 9; i += 3) {
for (int j = 0; j < 9; j += 3) {
set<char> mySet;
for (int k = 0; k < 3; k++) {
for (int l = 0; l < 3; l++) {
if (board[i + k][j + l] == '.') continue;
if (mySet.count(board[i + k][j + l])) return false;
mySet.insert(board[i + k][j + l]);
}
}
mySet.clear();
}
}
return true;
}
};
--
擺脫期中地獄後 可以回來寫每日了
--
社長 cv:ともりる 梨花 cv:しゅかしゅー
https://i.imgur.com/EFHPLVW.jpg


--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.120.154.100 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1669198514.A.3C8.html
※ 編輯: Pash97143 (59.120.154.100 臺灣), 11/23/2022 18:15:56
推
11/23 18:16,
3年前
, 1F
11/23 18:16, 1F
推
11/23 18:17,
3年前
, 2F
11/23 18:17, 2F
→
11/23 18:17,
3年前
, 3F
11/23 18:17, 3F
推
11/23 18:20,
3年前
, 4F
11/23 18:20, 4F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 116 之 719 篇):