国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 學院 > 開發設計 > 正文

leecode 解題總結:37 Sudoku Solver

2019-11-10 20:20:34
字體:
來源:轉載
供稿:網友
#include <iostream>#include <stdio.h>#include <vector>#include <fstream>using namespace std;/*問題:Write a PRogram to solve a Sudoku puzzle by filling the empty cells.Empty cells are indicated by the character '.'.You may assume that there will be only one unique solution.A sudoku puzzle......and its solution numbers marked in red.分析:這是搜索是否有解的問題,廣度優先搜索最優解,深度優先搜索確定是否有解。因此本題應該用深度優先搜索。看題目,如果擺放新的元素不成功,應該是要回溯的。因此,此題應該是回溯來做。每一次嘗試擺放一個1~9中的某個元素,如果擺放不成功,就用另一個元素替換,如果最終棋盤擺滿了,就輸出結果。如何判定沒有結果,如果1判斷是否滿足可行解,只需要當前board[i][j]元素為c是否在行號,列號,子棋盤擺放過	判斷子棋盤上的9個元素是否與給定元素重復,先確定 子棋盤的行號=行號	給定位置(row,jcol)計算對應子棋盤的行號(x,y)	x = 3 * (row / 3)	y = 3 * (col / 3)	子棋盤編號 = 3 *(row / 3) + col /3 = 3 + 2 = 5,行號確定大的子棋盤編號,列號確定小的子棋盤編號	子棋盤元素下標 = 3 * (col / 3) + col % 3 = 3 * 2 + 8 % 3 = 8,其實就是將列分成3等份,然后取余數	比如給定元素(5,8),對應第6子棋盤中(編號為5)中第8個元素	這里由于采用i為0~8,i默認為列號	則新的子棋盤編號=board[ 3 * (row / 3) + i / 3 ][3 * (col / 3) + i % 3]	subBoardIndex = 3 * (row / 3) + i / 3;	index = 3 * (col / 3) + i % 3;*/class Solution {public:	bool isValidSudoku(vector<vector<char> > &board , int row  , int col , char c)	{		if(board.empty())		{			return false;		}		int size = board.size();		int subBoardIndex;		int index;		for(int i = 0 ; i < 9 ; i++)		{			if(board[i][col] != '.' && board[i][col] == c)			{				return false;			}			if(board[row][i] != '.' && board[row][i] == c)			{				return false;			}			/*			判斷子棋盤上的9個元素是否與給定元素重復,先確定 子棋盤的行號=行號			給定位置(row,jcol)計算對應子棋盤的行號(x,y)			x = 3 * (row / 3)			y = 3 * (col / 3)			子棋盤編號 = 3 *(row / 3) + col /3 = 3 + 2 = 5,行號確定大的子棋盤編號,列號確定小的子棋盤編號			子棋盤元素下標 = 3 * (col / 3) + col % 3 = 3 * 2 + 8 % 3 = 8,其實就是將列分成3等份,然后取余數			比如給定元素(5,8),對應第6子棋盤中(編號為5)中第8個元素			這里由于采用i為0~9,i默認為列號			則新的子棋盤編號=board[ 3 * (row / 3) + i / 3 ][3 * (col / 3) + i % 3]			*/			subBoardIndex = 3 * (row / 3) + i / 3;			index = 3 * (col / 3) + i % 3;			if(board[subBoardIndex][index] != '.' && board[subBoardIndex][index] == c)			{				return false;			}		}		return true;	}	bool isSolved(vector<vector<char>>& board)	{		if(board.empty())		{			return false;		}		int size = board.size();		for(int i = 0 ; i < size ; i++)		{			for(int j = 0 ; j < size ; j++ )			{				if('.' == board.at(i).at(j))				{					//嘗試在空白的區域處擺放下一個元素,這里直接用cha					for(char c = '1' ; c <= '9' ; c++)					{						//如果擺放有效,繼續處理						if(isValidSudoku(board , i , j , c))						{							board.at(i).at(j) = c;							//牛逼,直接用遞歸判斷下一次是否擺放成功							if(isSolved(board))							{								return true;							}							else							{								board.at(i).at(j) = '.';							}						}					}					//如果一直沒有得到結果,說明無效					return false;				}			}		}		return true;	}    void solveSudoku(vector<vector<char>>& board) {		if(board.empty())		{			return;		}		bool isSolve = isSolved(board);		_isSolved = isSolve;	}public:	bool _isSolved;};vector<string> readFile(string& fileName){	vector<string> results;	if(fileName.empty())	{		return results;	}	ifstream file(fileName , ios::in);	if(!file)	{		cout << "can't open file" << endl;		return results;	}	const int maxSize = 1024;	char str[maxSize];	while(!file.eof())	{		file.getline(str , maxSize);		string s(str);		results.push_back(s);	}	file.close();	return results;}void print(vector< vector<char> >& board){	if(board.empty())	{		cout << "no result" << endl;	}	int size = board.size();	for(int i = 0 ; i < size ; i++)	{		for(int j = 0 ; j < size ; j++ )		{			cout << board.at(i).at(j);		}		cout << endl;	}}void process(){	vector< vector<char> > board;	string s;	int size;	Solution solution;	board.clear();	vector<string> strs = readFile(string("data.txt"));	int len = strs.size();	for(int i = 0 ; i < len ; i++)	{		s = strs.at(i);		vector<char> str;		size = s.length();		for(int i = 0 ; i < size ; i++)		{			str.push_back(s.at(i));		}		board.push_back(str);	}	solution.solveSudoku(board);	if(solution._isSolved)	{		print(board);	}	else	{		cout << "no" << endl;	}}int main(int argc , char* argv[]){	process();	getchar();	return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产视频1区| www.操操操.com| 九色福利视频| 国产美女在线一区二区三区| 影音先锋中文字幕在线| 在线观看免费高清完整| 欧美日韩国产亚洲沙发| 国产美女视频网站| 影音先锋日韩| 欧美精品日韩少妇| 国产精品视频一区二区久久| 国产高清视频在线播放| www在线视频| 国产黄在线观看| av人人综合网| 国产天堂资源| 四虎免费视频| 国产高清免费视频| 免费一区二区三区视频狠狠| 欧美aaa一级片| 国产精品久久在线| 久久精品国产麻豆| 国产福利电影在线观看| 国产在线激情视频| 日p在线观看| 在线免费观看黄色片| 国产一级性片| 国内外激情在线| 亚洲videos| 国产精品久久在线| 狠狠操狠狠色| 男人天堂网在线观看| 精品女厕厕露p撒尿| 91sp网站在线观看入口| 中文在线有码| 国产福利在线免费观看| 国产女人伦码一区二区三区不卡| 尤物视频在线观看视频| 国产高清免费在线播放| 国产野外战在线播放| 国产在线三区| 免费看的av| 青青草免费观看免费视频在线| 精品日韩av| 亚洲天堂视频在线观看免费| 精品国产免费第一区二区| 中文字幕在线免费视频| 老司机精品视频一区二区| 日本免费黄色| 日本成人免费网站| 麻豆精品视频入口| 最近免费中文字幕在线第一页| 九九热视频免费在线观看| 本道综合精品| 免费看黄视频网站| 天天操人人干| 国产精品jvid在线观看| 国产黄视频在线观看| 精品全国在线一区二区| av日韩在线免费| 超碰国产在线观看| 国产激情在线视频| 亚洲成人在线播放| 在线91av| 国产导航在线| 超碰在线观看免费版| 国产色在线 com| 日韩不卡高清| 中文字幕视频在线观看| 国产黄色片在线观看| 亚洲字幕成人中文在线观看| 免费精品国产自产拍观看| 综合图区亚洲白拍在线| 国产第一页在线| 欧美日韩国产亚洲沙发| 国产日本视频| 另类专区欧美| 伊人222成人综合网| 91超碰国产在线| 中文字幕免费在线视频| 一本大道久久精品| 最新中文字幕在线视频| 在线观看中文字幕一区| 国产一级激情| 激情亚洲综合网| 在线国产小视频| 国产区av在线| 日本中文字幕视频| 日本视频二区| 在线看黄色av| 精品久久av| 国产高清自拍视频在线观看| 国产在线观看91| 青青草中文字幕| 国产网站麻豆精品视频| 欧美黑人乱大交ⅹxxxxx| 在线色视频观看| 在线亚洲电影| 在线观看午夜av| 精精国产xxxx视频在线中文版| 国产一级黄色大片| 国产精品综合久久久久| 亚洲激情丁香| 天天操夜夜做| 日本一本久久| 久久精品免视着国产成人| jlzzjlzz欧美| 看成年女人免费午夜视频| 日本黄在线观看| 中文字幕av在线| 亚洲欧美精选| 免费在线播放av| 国产在线观看18| 天堂在线免费av| 天堂在线一二区| 91在线网站| 免费高清视频日韩| 天堂在线中文| 在线视频三区| 成人免费一区二区三区牛牛 | 91欧洲在线视精品在亚洲| 国产乱视频在线观看| 1区2区3区在线| av免费在线观看网站| 激情综合丁香| 国产h色视频在线观看| jizz一区二区三区| 国产污污在线观看| 日本国产在线| 国产区高清在线| 四虎成人免费| 99色在线视频| 日p在线观看| 国产精品777一区二区| av网址在线免费观看| 国产免费人人看| 在线一区观看| 国产香蕉在线| 激情丁香婷婷| 色欧美在线观看| 国产不卡视频| 国产精品日日爱| 欧美人成在线观看网站高清| 69视频在线| 国产精品蜜臀| 中文字幕一区免费| 国产男女无套在线播放| gogo在线高清视频| 亚洲图区欧美| 精品欧美不卡一区二区在线观看| 久草视频国产| 成人免费一区二区三区牛牛| 日本在线观看| 天堂中文在线观看| 羞羞视频在线观看免费| 97高清视频| 永久免费不卡在线观看黄网站| 国产精品免费麻豆入口| √天堂资源地址在线官网| 国产乱在线观看视频| 天天操人人干| 国产小视频福利在线| 国产一级黄色电影| 国产一级粉嫩xxxx| 国产粉嫩一区二区三区在线观看| 国产理论在线观看| 国产天堂资源| 永久免费av片在线观看全网站| 国产传媒在线播放| 伊人免费视频| 欧美高清视频| 福利视频在线看| 最近免费中文字幕大全免费第三页| 丁香花高清在线观看完整版| 国产精品亚洲色图| √天堂资源中文www| 伊人影院蕉久影院在线播放| av网站在线播放| 国产在线激情视频| 国产区在线视频| 精品视频一二区| 免费观看久久久久| 国产经典自拍视频在线观看| 99re热在线观看| 国产主播福利在线| 国产精品99999| 欧美日韩**字幕一区| 国产视频资源| 四虎中文字幕| 国产区av在线| 热99re久久精品精品免费| 国产乱在线观看视频| 精精国产xxxx视频在线| 麻豆网站在线免费观看| 国产福利小视频在线| 先锋av资源网| 国产精品777一区二区| 久热国产在线视频| av福利在线播放| 国产一二区视频|