leetcode36~Valid Sudoku

2024-02-06 03:38
文章标签 valid sudoku leetcode36

本文主要是介绍leetcode36~Valid Sudoku,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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 ‘.’.
这里写图片描述

A partially filled sudoku which is valid.

对于检验的规则可访问链接:
http://sudoku.com.au/TheRules.aspx

分别对 行 列 和小的九宫格进行校验即可。
关键在对小九宫格进行校验时范围的选取

public class ValidSudoku {//set集合用于存放元素值,进行重复性检查public boolean isValidSudoku2(char[][] board) {Set<Character> set = new HashSet<Character>();//按行检验for(int i=0;i<9;i++) {for(int j=0;j<9;j++) {if(board[i][j]>='1' && board[i][j]<='9') {if(!set.add(board[i][j])) {return false;}}}set.clear();}//按列检验for(int i=0;i<9;i++) {for(int j=0;j<9;j++) {if(board[j][i]>='1' && board[j][i]<='9') {if(!set.add(board[j][i])) {return false;}}}set.clear();}//按小的九宫格检验for(int i=0;i<9;i+=3) {for(int j=0;j<9;j+=3) {for(int row=i;row<i+3;row++) {for(int column=j;column<j+3;column++) {if(board[row][column]>='1' && board[row][column]<='9') {if(!set.add(board[row][column])) {return false;}}}}set.clear();}}return true;}public boolean isValidSudoku(char[][] board) {Set<Character> rows = new HashSet<>();Set<Character> columns = new HashSet<>();Set<Character> cubes = new HashSet<>();for(int i=0;i<9;i++) {rows.clear();columns.clear();cubes.clear();for(int j=0;j<9;j++) {//行检查if(board[i][j]!='.' && !rows.add(board[i][j])) {return false;}//列检查if(board[j][i]!='.' && !columns.add(board[j][i])) {return false;}//小的九宫格检查int r = (i/3)*3;int c = (i%3)*3;if(board[r+j/3][c+j%3]!='.' && !cubes.add(board[r+j/3][c+j%3])) {return false;}}}return true;}
}

这篇关于leetcode36~Valid Sudoku的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/683031

相关文章

解决The valid characters are defined in RFC 7230 and RFC 3986

解决方法: 一、更换低版本的Tomcat;(我选的方案) 二、参考:https://blog.csdn.net/qq_32365919/article/details/82055800

leetCode#125. Valid Palindrome

Description Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases. For example, “A man, a plan, a canal: Panama” is a palindrome. “race a car

leetcode#32. Longest Valid Parentheses

题目 Given a string containing just the characters '(' and ')', find the length of the longest valid (well-formed) parentheses substring. For "(()", the longest valid parentheses substring is "()", wh

记一次knife4j文档请求异常 SyntaxError: Unexpected token ‘<‘, ... is not valid JSON

knife4j页面报错问题定位 前几天开发新接口,开发完成后想使用knife4j测试一下接口功能,突然发现访问页面报错提示:knife4j文档请求异常,但之前运行还是正常的,想想会不会与升级依赖有关系,启动其他微服务发现文档接口访问正常,排除因依赖版本升级导致在线API文档无法使用情况,还是和本服务新增接口有关系。 定位问题 首先f12打开调试台,重新刷新页面,看到console有报错提示

LeetCode - 37. Sudoku Solver

37. Sudoku Solver  Problem's Link  ---------------------------------------------------------------------------- Mean:  求解数独. analyse: 只是9宫格的数独,而且测试数据都不难,所以可以直接使用递归求解,类似于N-Queue问题. 但如果宫格

LeetCode - 36. Valid Sudoku

36. Valid Sudoku  Problem's Link  ---------------------------------------------------------------------------- Mean:  给定一个数独,判断这个数独是否合法. analyse: 略. Time complexity: O(N)   view

LeetCode - 32. Longest Valid Parentheses

32. Longest Valid Parentheses  Problem's Link  ---------------------------------------------------------------------------- Mean:  给定一个由'('和')'组成的字符串,求最长连续匹配子串长度. analyse: 定义一个stack<pair

LeetCode 36 Valid Sudoku

题意: 判断一个填了一部分的数独有没有解。 思路: 按照数独规则判断即可,即同一行、同一列、同一个3*3的方格内没有数字重复出现。 代码: class Solution {public:bool isValidSudoku(vector <vector<char>> &board) {const int step = 3;bool app[step * step];fo

Javascript报错Failed to execute ‘querySelectorAll‘ on ‘Document‘: ‘#123456‘ is not a valid sele

Javascript报错:Failed to execute ‘querySelectorAll’ on ‘Document’: ‘#123456’ is not a valid selector 解决方式(除开特殊符号,第一个字符必须是字母): 第一种: 将ID前面加字母,例如:document.querySelectorAll('#id123456') 第二种: 根据ID属性,例如:doc

spring cloud restTemplate访问服务器提示 Request URI does not contain a valid hostname

创建restTemplate的Bean对象 @Bean@LoadBalancedpublic RestTemplate restTemplate() {return new RestTemplate();} 异常: Request URI does not contain a valid hostname 解决方法: 去除目标应用的spring.application.name值