当前位置: 首页 > 后端技术 > Java

LeetCode-036-ValidSudoku

时间:2023-04-01 17:25:29 Java

ValidSudoku题目描述:请判断一个9x9的数独是否有效。您只需要根据以下规则验证填写的数字是否有效即可。数字1-9每行只能出现一次。数字1-9在每一列中只能出现一次。数字1-9在每个由粗实线分隔的3x3房子中只能出现一次。(请参考示例图)数独部分的空格已经填入数字,空格用'.'表示。注意:一个有效的数独(部分填充)不一定是可解的。您只需要根据以上规则验证输入的号码是否有效即可。例子见LeetCode官网。来源:LeetCode链接:https://leetcode-cn.com/probl...版权归LeetCode所有。商业转载请联系官方授权,非商业转载请注明出处。方案一:数组遍历分3种判断,即行判断、列判断、3*3宫内判断。判断逻辑是用Set来判断权重。如果同一行(或同一列,或同一宫)中有重复的数字匹配,则返回false;如果它们都匹配,它最终返回true。importjavafx.util.Pair;importjava.util.ArrayList;importjava.util.HashSet;importjava.util.List;importjava.util.Set;publicclassLeetCode_036{publicstaticList>all=newArrayList<>();静态{all.add(新对<>(0,0));all.add(新对<>(0,3));all.add(新对<>(0,6));all.add(新对<>(3,0));all.add(新对<>(3,3));all.add(新对<>(3,6));all.add(新对<>(6,0));all.add(新对<>(6,3));all.add(新对<>(6,6));}publicstaticbooleanisValidSudoku(char[][]board){//判断for(inti=0;inums=newHashSet<>();for(intj=0;jnums=newHashSet<>();对于(intj=0;jintegerIntegerPair:all){Setnums=newHashSet<>();对于(intx=integerIntegerPair.getKey();x