当前位置: 首页 > ai >正文

36. 有效的数独

题目:

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

  1. 数字 1-9 在每一行只能出现一次。
  2. 数字 1-9 在每一列只能出现一次。
  3. 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)

注意:

  • 一个有效的数独(部分已被填充)不一定是可解的。
  • 只需要根据以上规则,验证已经填入的数字是否有效即可。
  • 空白格用 '.' 表示。

思路:

可以用下标数组来判断有没有重复数字,只有1-9的话就创立数组,比如有9,那就a[9] +=1, 如果有数字大于1,则证明有重复

要判断的总共有9*3的数组:横排,竖排,9个小矩阵,做个map然后建立对应的数组即可; 按照上面的方法判断重复

代码:

 public boolean isValidSudoku(char[][] board) {Map<String, int[]> map = new HashMap<>();for (int i = 0; i < 9; i++) {for (int j = 0; j < 9; j++) {if (board[i][j] != '.') {String str = (i / 3) + "," + (j / 3);int[] flags = map.getOrDefault(str, new int[10]);int v1 = Integer.valueOf(String.valueOf(board[i][j]));flags[v1] += 1;map.put(str, flags);if (flags[v1] > 1) {return false;}int[] flagsCol = map.getOrDefault("R" + i, new int[10]);flagsCol[v1] += 1;if (flagsCol[v1] > 1) {return false;}map.put("R" + i, flagsCol);int[] flagsRow = map.getOrDefault("C" + j, new int[10]);flagsRow[v1] += 1;if (flagsRow[v1] > 1) {return false;}map.put("C" + j, flagsRow);}}}return true;}

http://www.xdnf.cn/news/14209.html

相关文章:

  • 『uniapp』搜索功能+商品列表滚动效果(详细图文注释)
  • SAE层、BPNN层结合的深度学习模型
  • C++ 环境配置
  • XRecorder:安卓录屏,轻松高效
  • 嵌入式PADS中Route布线操作与实现
  • OVS Faucet Tutorial笔记(下)
  • 动手学深度学习Pytorch版(李沐)(5-7章)
  • 使用STM32设置GPIO中断
  • 20250611题解
  • 抖音蓝牙遥控器芯片方案、自拍器蓝牙芯片方案 简易版 io控制
  • 高精度模板
  • 【Spring源码核心篇-08】spring中配置类底层原理和源码实现
  • torchsummary库中的summary()函数
  • Kerberos快速入门之基本概念与认证基本原理
  • OpenLayers 创建坐标系统
  • Flower框架中noise_multiplier与clipped_count_stddev的关系
  • [智能客服project] AI代理系统 | 意图路由器
  • pikachu靶场通关笔记30 文件包含01之本地文件包含
  • Typecho安装后后台 404 报错解决
  • CMake实践: 以开源库QSimpleUpdater为例,详细讲解编译、查找依赖等全过程
  • Reqable・API 抓包调试 + API 测试一站式工具
  • 17_Flask部署到网络服务器
  • 【软测】接口测试 - 用postman测试软件登录模块
  • 微机原理与接口技术,期末冲刺复习资料(汇总版)
  • Linux进程间通信(IPC)详解:从入门到理解
  • H5 技术与定制开发工具融合下的数字化营销新探索
  • 高效录屏工具推荐:从系统自带到专业进阶
  • 函数调用过程中的栈帧变化
  • 普通Dom转换为可拖拽、最大化、最小化窗口js插件
  • 【在线五子棋对战】六、项目结构设计 工具模块实现