日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode:Sudoku Solver Valid Sudouku

發布時間:2023/12/9 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode:Sudoku Solver Valid Sudouku 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

其實數獨還是我挺喜歡的一個游戲。原來有本數獨的書。

其實Sudoku是基于Valid Sudouku.其實一開始有點想太多。基于平常玩數獨的經驗,有很多解數獨的規則。貌似這個人為判斷因素比較多。

而且一開始理解的valid是有解無解,其實這里要求的是給定的board里的數字是否符合規則,不一定能解。

其實我這里有3個函數,一個是判斷行除該位置外是否有相同值的,一個是列,最后一個是小正方形里。

而求解使用的是暴力,一個個嘗試。


public class SudokuSolver {
???
??? public void solveSudoku(char[][] board)
??? {
??????? if(board == null) return;
??????? suduku(board);
??? }
???
??? public boolean suduku(char[][] board)
??? {
??????? for(int i = 0;i<9;i++)
??????? {
??????????? for(int j = 0;j<9;j++)
??????????? {
??????????????? if(board[i][j] == '.')
??????????????? {
??????????????????? for(int k = 1;k<=9;k++)
??????????????????? {
??????????????????????? board[i][j] =? (char)('0' + k);
??????????????????????? if(isValid(board,i,j)&&suduku(board))
??????????????????????? {
??????????????????????????? return true;
??????????????????????? }
??????????????????????? board[i][j] = '.';
??????????????????? }
??????????????????? return false;
??????????????? }
??????????? }
??????? }
??????? return true;
??? }
???
??? public boolean isValid(char[][] board,int row,int column)
??? {
??????? if(board == null)return false;
??????? boolean valid = true;
??????? if(rowContainsValue(board,row,column,board[row][column]))
??????? {
??????????? valid = false;
??????????? return valid;
??????? }
??????? if(columnContainsValue(board,row,column,board[row][column]))
??????? {
??????????? valid = false;
??????????? return valid;
??????? }
??????? if(squareContainsValue(board,row,column,board[row][column]))
??????? {
??????????? valid = false;
??????????? return valid;
??????? }
??????? return valid;
??? }
???
??? public boolean isValidSudoku(char[][] board) {
???????
??????? if(board == null) return false;
??????? boolean valid = true;
??????? boolean flag = true;
??????? for(int i = 0;i<9&&flag;i++)
??????? {
??????????? for(int j = 0;j<9;j++)
??????????? {
??????????????? if(board[i][j] == '.')
??????????????????? continue;
??????????????? if(rowContainsValue(board,i,j,board[i][j]))
??????????????? {
??????????????????? valid = false;
??????????????????? flag = false;
??????????????????? break;
??????????????? }
??????????????? if(columnContainsValue(board,i,j,board[i][j]))
??????????????? {
??????????????????? valid = false;
??????????????????? flag = false;
??????????????????? break;
??????????????? }
??????????????? if(squareContainsValue(board,i,j,board[i][j]))
??????????????? {
??????????????????? valid = false;
??????????????????? flag = false;
??????????????????? break;
??????????????? }
??????????? }
??????? }
???????
??????? return valid;
???????
??? }
???
??? public boolean rowContainsValue(char[][] board,int row,int column,char value)
??? {
??????? boolean val =false;
??????? for(int i = 0;i<9;i++)
??????? {
??????????? if(board[row][i] == value&&i!=column)
??????????? {
??????????????? val = true;
??????????????? break;
??????????? }
??????? }
??????? return val;
??? }
??? public boolean columnContainsValue(char[][] board,int row,int column,char value)
??? {
??????? boolean val =false;
??????? for(int i = 0;i<9;i++)
??????? {
??????????? if(board[i][column] == value&&i!=row)
??????????? {
??????????????? val = true;
??????????????? break;
??????????? }
??????? }
??????? return val;
??? }
??? public boolean squareContainsValue(char[][] board,int row,int column,char value)
??? {
??????? boolean val =false;
??????? boolean flag = false;
??????? for(int i = (row/3)*3;i<(row/3)*3+3&&!flag;i++)
??????? {
??????????? for(int j=(column/3)*3;j<(column/3)*3+3;j++)
??????????? {
??????????????? if(board[i][j] == value&&i!=row&&j!=column)
??????????????? {
??????????????????? val = true;
??????????????????? flag = true;
??????????????????? break;
??????????????? }
??????????? }
??????? }
??????? return val;
??? }

}

轉載于:https://www.cnblogs.com/jessiading/p/3784093.html

總結

以上是生活随笔為你收集整理的LeetCode:Sudoku Solver Valid Sudouku的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人激情开心 | 找个毛片看看 | 国产97色在线 | 日韩 | 在线观看视频一区二区三区 | 久久国产劲爆∧v内射 | 免费国产视频在线观看 | 国产午夜福利片 | 欧美人与性禽动交精品 | 欧美精品a区 | 亚洲av成人无码久久精品老人 | 在线观看中文字幕一区二区 | 高清三区 | 国产乱码精品一区二区 | 视频区小说区图片区 | 男女男精品网站 | 伊人欧美在线 | 亚洲香蕉中文网 | 国语一区 | 国产www在线 | 欧美成人一级视频 | 又粗又猛又爽又黄的视频 | 99er在线| 国产精品一级片 | ass精品国模裸体欣赏pics | 污夜影院 | 天干夜天干天天天爽视频 | 原创真实夫妻啪啪av | 亚洲第一黄网 | 日韩另类在线 | 住在隔壁的她动漫免费观看全集下载 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 国产精品欧美一区二区三区 | 欧美三级韩国三级日本三斤 | 亚洲一区精品在线观看 | 亚洲视频四区 | 欧美日韩亚洲色图 | 女女互慰吃奶互揉调教捆绑 | 成人免费毛片嘿嘿连载视频 | 国产一区二区精品久久 | 免费se99se | 夜夜爽妓女8888视频免费观看 | 国产一区二区三区视频网站 | 日韩网站在线播放 | 91成人免费 | 日韩在线观看精品 | 青青青免费视频观看在线 | 精品免费国产一区二区三区 | 女同毛片一区二区三区 | 午夜激情在线观看 | 久久精品国产99国产 | 操极品美女 | 朋友人妻少妇精品系列 | 免费在线观看av网址 | 国产一区二区网 | 久久女同互慰一区二区三区 | 日产欧产va高清 | 国产一二三在线视频 | 91超碰在线免费观看 | 国产精品tv | 诱惑の诱惑筱田优在线播放 | 久久久久久久久久久97 | 伦理自拍 | 饥渴少妇勾引水电工av | 草的我好爽 | 久草高清| 久久嗨 | 国产小视频免费在线观看 | 日韩欧美理论 | 日韩精品视频网 | 亚洲国产极品 | 少妇无套内谢免费视频 | 女人裸体免费网站 | 国产日本一区二区 | 国产精品久久久久久久久久免费看 | 奇米在线 | 国产传媒视频在线观看 | 无码精品人妻一区二区 | 一区二区在线观看av | 一区二区精品免费 | 黄色一级片在线免费观看 | 亚洲喷水 | 邻居少妇张开腿让我爽了在线观看 | 免费看成人啪啪 | 六月丁香综合网 | 亚欧美日韩 | 亚洲熟女乱综合一区二区 | 一二三av | 激情五月色婷婷 | 在线观看的毛片 | 乱子伦一区二区 | 超碰人人插 | 国产午夜无码精品免费看奶水 | 日日摸夜夜添狠狠添欧美 | 欧美顶级少妇做爰 | 国产a级网站 | 精品国产乱码一区二区三 | 这里只有精品免费视频 | 一区二区三区四区av | 亚洲色图视频在线 |