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

  1. 数字 1-9 在每一行只能出现一次。
  2. 数字 1-9 在每一列只能出现一次。
  3. 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。

上图是一个部分填充的有效的数独。

数独部分空格内已填入了数字,空白格用 '.' 表示。

解法1>:问题循环嵌套过多,时间复杂度不友好

class Solution:def isValidSudoku(self, board: List[List[str]]) -> bool:series = board# 列循环x = []for colum in range(len(series)):  # 0~9# 行循环row_l = []colum_l = []for row in range(len(series)):# 循环 值if series[colum][row].isnumeric():row_l.append(series[colum][row])if series[row][colum].isnumeric():colum_l.append(series[row][colum])if len(row_l) != len(set(row_l)) or len(colum_l) != len(set(colum_l)):print('行', row_l, '列', colum_l)return Falsefor colum in range(0, 9, 3):matrx = series[colum:colum + 3]for row in range(0, 9, 3):li = []for value in matrx:# print(value[row:row + 3])for number in value[row:row + 3]:if number.isnumeric():li.append(number)if len(li) != len(set(li)):print('3x3', li)return Falsereturn True

解法2>:优化

def jiu():b = {}h_c = {i:[] for i in range(9)}l_c = {i:[] for i in range(9)}g_c = {i:[] for i in range(9)}for i in a:h = a.index(i) #行for index,j in enumerate(i):if j != '.':l = index # 3 4 5  4if l in [0,1,2]:g = 0 + h//3*3elif l in [3,4,5]:g = 1 +  h//3*3else:g = 2 + h//3*3if j not in h_c[h]:h_c[h].append(j)elif j in h_c[h]:print(j)return(h,l,j)if j not in l_c[l]:l_c[l].append(j)elif j in l_c[l]:print(j)return(h,l,j)if j not in g_c[g]:g_c[g].append(j)elif j in g_c[g]:print(j)return(h,l,j)
jiu()

力扣(中国):https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/1/array/30/

力扣中国(LeetCode) 算法题 有效独数(python)相关推荐

  1. C#实现力扣双周赛算法题:以组为单位订音乐会的门票订购

    目录: 前言: 一,算法题目描述 二,基本概念理解: 三,例子引入分析 四,代码解释 (1)安排座位函数 (2)查询函数 (2)求出1到RPS内的最小下标 (3)gather函数 (4)scatter ...

  2. leetcode算法题--最长数对链

    原题链接:https://leetcode-cn.com/problems/maximum-length-of-pair-chain/ 1.动态规划 dp[i]表示第i个位置最长的数对链的长度 状态转 ...

  3. leetcode算法题--回文数

    原文链接:https://leetcode-cn.com/problems/palindrome-number/ bool isPalindrome(int x) {if(x<0||(x%10= ...

  4. python【力扣LeetCode算法题库】220-存在重复元素 III

    给定一个整数数组,判断数组中是否有两个不同的索引 i 和 j,使得 nums [i] 和 nums [j] 的差的绝对值最大为 t,并且 i 和 j 之间的差的绝对值最大为 ķ. 示例 1: 输入: ...

  5. python【力扣LeetCode算法题库】219 -存在重复元素 II

    给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k. 示例 1: 输入: nums = ...

  6. python【力扣LeetCode算法题库】217-存在重复元素

    给定一个整数数组,判断是否存在重复元素. 如果任何值在数组中出现至少两次,函数返回 true.如果数组中每个元素都不相同,则返回 false. 示例 1: 输入: [1,2,3,1] 输出: true ...

  7. python【力扣LeetCode算法题库】257- 二叉树的所有路径

    给定一个二叉树,返回所有从根节点到叶子节点的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 输入: 1 / 2 3 5 输出: ["1->2->5", &quo ...

  8. python【力扣LeetCode算法题库】10-正则表达式匹配

    给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配. '.' 匹配任意单个字符 '*' 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 ...

  9. Python爬虫抓取LeetCode题解,获取力扣中国(leetcode-cn.com)提交代码,自动保存submission到本地,同步上传到github

    力扣中国虽然可以和github绑定账号,但是我提交的题解并不能同步到github上-- 辛辛苦苦三个月,勤勤恳恳四百题,leetcode一片绿,github万里白. 手动上传是不可能手动上传的,这辈子 ...

最新文章

  1. [转]mysql性能的检查和调优方法
  2. 用requests获取网页源代码 python-Python3使用requests包抓取并保存网页源码的方法
  3. Qt编译过程中出现的问题
  4. 学习笔记:The Log(我所读过的最好的一篇分布式技术文章
  5. SAP CRM webclient ui里直接编写原生的JavaScript
  6. java集成lucene_将Lucene搜索集成到应用程序中
  7. java子类怎么编译_java – 无法编译从基类实现抽象方法的子类
  8. Chrome 浏览器创建网站快捷方式(加入收藏夹)代码
  9. C++相对于C语言更加规范(1)
  10. 24. Navigator taintEnabled() 方法
  11. 前端实战项目:前端框架Vue3.0项目教程(一)Vue3.0环境的搭建
  12. vue遍历Map集合
  13. leaflet加载谷歌影像地图、天地图影像地图、天地图影像注记
  14. Swift最新的AES加密解密
  15. (转)cocos2d-x学习笔记(五)仿真树叶飘落效果的实现(精灵旋转、翻转、钟摆运动等综合运用)
  16. python中spider的用法_Python爬虫从入门到放弃(十五)之 Scrapy框架中Spiders用法
  17. build.gradle Failed to resolve:me.relex:circleindicator:1.1.5
  18. 房产中介 二手房中介小程序 一流开发 抓住小程序热潮
  19. xcode和macos对应版本参考
  20. “数”峰亮剑,优炫数据库助力国产数据库算法对抗赛成功举办

热门文章

  1. c语言中,从键盘输入一个长方体的长宽高,用函数实现求长方体的体积,由主函数调用该函数,要求长方体的长、宽、高从主函数输入,长方体的体积作为函数返回值。
  2. Spring Boot 实现定时任务
  3. 用Python实现斐波那契数列代码
  4. 试卷代号:4022 2021年春季学期期末统一考试金融风险概论 试题(开卷)
  5. [渝粤教育] 中国矿业大学 货币金融学 参考 资料
  6. The annotation of C++ primer {藤原豆腐坊自家用}
  7. android studio git 错误 unable to read askpass
  8. Bilateral attention network for RGB-D salient object detection阅读笔记
  9. python判断一个数是奇数还是偶数_在python中检查一个数字是奇数还是偶数
  10. 合同和协议的区别_你签的是合同还是协议?他们的法律效力有区别吗?