数独346,数独中的数组

  数独346,数独中的数组

  36.有效数独

  请判断一个9 x 9的数独是否有效。只需要根据以下规则验证已经填写的数字是否有效。

  数字1-9在每行中只能出现一次。

  数字1-9在每列中只能出现一次。

  数字1-9在每个用粗实线隔开的3x3宫中只能出现一次。(请参考示例图)

  注意:

  有效的数独(部分填充)不一定是可解的。

  只需要根据上述规则验证已经填写的数字是否有效。

  空格用“.”表示。

  示例1:

  回车:board=

  [[5,3,.,.,7,.,.,.,.]

  ,[6,.,.,1,9,5,.,.,.]

  ,[.,9,8,.,.,.,.,6,.]

  ,[8,.,.,.,6,.,.,.,3]

  ,[4,.,.,8,.,3,.,.,1]

  ,[7,.,.,.,2,.,.,.,6]

  ,[.,6,.,.,.,.,2,8,.]

  ,[.,.,.,4,1,9,.,.,5]

  [.,.,.,.,8,.,., 7 , 9]]输出:真

  示例2:

  回车:board=

  [[8,3,.,.,7,.,.,.,.]

  ,[6,.,.,1,9,5,.,.,.]

  ,[.,9,8,.,.,.,.,6,.]

  ,[8,.,.,.,6,.,.,.,3]

  ,[4,.,.,8,.,3,.,.,1]

  ,[7,.,.,.,2,.,.,.,6]

  ,[.,6,.,.,.,.,2,8,.]

  ,[.,.,.,4,1,9,.,.,5]

  , [.,.,.,.,8,.,., 7 , 9]]输出:false

  说明:除了第一行的第一位数字由5改为8外,空白处的其他数字与例1相同。但是这个数独是无效的,因为左上角的3x3宫有两个8。

  资料来源:LeetCode

  链接:https://leetcode.cn/problems/valid-sudoku

  版权归领网所有。商业转载请联系官方授权,非商业转载请注明出处。

  解决方案想法:

  用三个9*9的矩阵row[i][num],col[i][num]和box[r][c]作为哈希表遍历board[i][k],其中I代表行,K代表列。Numboard [i] [k]表示数字-1row[i][num]:表示numcol[k][num]是否出现在第I行:表示numbox [r] [c]是否出现在第k列:r=i/3x3num/3,c=k/3x3 num%3,表示,

  类别解决方案{

  公共:

  bool isValidSudoku(向量向量字符板){

  int row[9][9]={ 0 };//row[i][k]表示第I行的数字k是否出现过,0表示从未出现过,1表示出现过。

  int col[9][9]={ 0 };

  int box[9][9]={ 0 };//从左到右,从上到下,每3 * 3 ^ 9个方块组成一个大格子。这个格子里有数字吗?

  for(int I=0;I 9;我)

  {

  for(int k=0;K9;k)

  {

  char x=board[I][k];

  if (x== . )

  {

  继续;

  }

  //这个数字曾经出现在I行、K列或框中吗

  int num=x- 0 -1;

  int r=I/3 * 3 num/3;

  int c=k/3 * 3 num % 3;

  if(row[I][num]==1 col[k][num]==1 box[r][c]==1)

  {

  返回false

  }

  row[I][num]=col[k][num]=box[r][c]=1;

  }

  }

  返回true

  }

  };

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • office2010激活密钥大全 怎么永久激活office2010
  • project2010产品密钥免费_project2010激活密钥永久激活码
  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • chatgpt是什么?为什么这么火?
  • ChatGPT为什么注册不了?OpenAI ChatGPT的账号哪里可以注册?
  • OpenAI ChatGPT怎么注册账号?ChatGPT账号注册教程
  • chatgpt什么意思,什么是ChatGPT ?
  • CAD中怎么复制图形标注尺寸不变,CAD中怎么复制图形线性不变
  • cad中怎么创建并使用脚本文件,cad怎么运行脚本
  • cad中快速计算器的功能,cad怎么快速计算
  • cad中快速修改单位的方法有哪些,cad中快速修改单位的方法是
  • cad中心点画椭圆怎么做,cad轴测图怎么画椭圆
  • CAD中常用的快捷键,cad各种快捷键的用法
  • 留言与评论(共有 条评论)
       
    验证码: