• 037 Sudoku Solver 解数独


    写一个程序通过填充空格来解决数独。空格用 '.' 表示。

    详见:https://leetcode.com/problems/sudoku-solver/description/

    class Solution {
    public:
        bool solveSudoku(vector<vector<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] = '0' + k;
    						if (isValid(board, i, j) && solveSudoku(board))
    							return true;
    						board[i][j] = '.';
    					}
    					return false;
    				}
    			}
    		return true;
    	}
    
    	bool isValid(vector<vector<char> > &board, int x, int y)
    	{
    		int i, j;
    		for (i = 0; i < 9; i++)
    			if (i != x && board[i][y] == board[x][y])
    				return false;
    		for (j = 0; j < 9; j++)
    			if (j != y && board[x][j] == board[x][y])
    				return false;
    		for (i = 3 * (x / 3); i < 3 * (x / 3 + 1); i++)
    			for (j = 3 * (y / 3); j < 3 * (y / 3 + 1); j++)
    				if (i != x && j != y && board[i][j] == board[x][y])
    					return false;
    		return true;
    	}
    };
    
  • 相关阅读:
    简单的多重背包
    完美子图
    活动投票
    人品问题
    售票系统
    最短路径
    优美值
    前端-常用函数记录-持续更新
    前端-单点登录中cookie中domain的思考
    大白话说GIT常用操作,常用指令git操作大全
  • 原文地址:https://www.cnblogs.com/xidian2014/p/8688535.html
Copyright © 2020-2023  润新知