首页 > 其他分享 >Study Plan For Algorithms - Part18

Study Plan For Algorithms - Part18

时间:2024-09-01 21:48:28浏览次数:9  
标签:return Study start num Algorithms Plan seen valid row

1. 搜索插入位置
题目链接:https://leetcode.cn/problems/search-insert-position/
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

class Solution:
    def searchInsert(self, nums: List[int], target: int) -> int:
        left, right = 0, len(nums) - 1

        while left <= right:
            mid = (left + right) // 2

            if nums[mid] == target:
                return mid
            elif nums[mid] < target:
                left = mid + 1
            else:
                right = mid - 1

        return left

2. 有效的数独
题目链接:https://leetcode.cn/problems/valid-sudoku/
请判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。

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

注意:

  • 一个有效的数独(部分已被填充)不一定是可解的。
  • 只需要根据以上规则,验证已经填入的数字是否有效即可。
  • 空白格用 '.' 表示。
class Solution:
    def isValidSudoku(self, board: List[List[str]]) -> bool:
        def is_valid_row(row):
            seen = set()
            for num in row:
                if num!= '.':
                    if num in seen:
                        return False
                    seen.add(num)
            return True

        def is_valid_col(col):
            seen = set()
            for row in board:
                num = row[col]
                if num!= '.':
                    if num in seen:
                        return False
                    seen.add(num)
            return True

        def is_valid_box(r_start, c_start):
            seen = set()
            for r in range(r_start, r_start + 3):
                for c in range(c_start, c_start + 3):
                    num = board[r][c]
                    if num!= '.':
                        if num in seen:
                            return False
                        seen.add(num)
            return True

        for i in range(9):
            if not is_valid_row(board[i]) or not is_valid_col(i):
                return False

        for r in range(0, 9, 3):
            for c in range(0, 9, 3):
                if not is_valid_box(r, c):
                    return False

        return True

标签:return,Study,start,num,Algorithms,Plan,seen,valid,row
From: https://www.cnblogs.com/stephenxiong001/p/18391783

相关文章

  • COMP20003 Algorithms and Data Structures Spellcheck Lookup
    Assignment2:SpellcheckLookupGeneralYoumustreadfullyandcarefullytheassignmentspecificationandinstructions.Course:COMP20003AlgorithmsandDataStructures@Semester2,2024DeadlineSubmission:Friday6thSeptember2024@11:59pm(endo......
  • Go plan9 汇编:手写汇编
    原创文章,欢迎转载,转载请注明出处,谢谢。0.前言在Goplan9汇编:打通应用到底层的任督二脉一文中介绍了从应用程序到汇编指令的转换。本文将结合汇编和Go程序实现手写基本的汇编指令,以加深对Goplan9汇编的了解。1.手写汇编1.1全局变量首先写一个打印整型变量的函数......
  • Go plan9 汇编: 打通应用到底层的任督二脉
    原创文章,欢迎转载,转载请注明出处,谢谢。0.前言作为一个严肃的Gopher,了解汇编是必须的。本汇编系列文章会围绕基本的Go程序介绍汇编的基础知识。1.Go程序到汇编首先看一个简单到令人发指的示例:packagemainfuncmain(){ a:=1 print(a)}运行程序,输出:#gorun......
  • Study Plan For Algorithms - Part16
    1.下一个排列题目链接:https://leetcode.cn/problems/next-permutation/整数数组的一个排列就是将其所有成员以序列或线性顺序排列。整数数组的下一个排列是指其整数的下一个字典序更大的排列。更正式地,如果数组的所有排列根据其字典顺序从小到大排列在一个容器中,那么数组......
  • 探讨 AI 驱动的 PlantUML:高效创建专业的 UML活动图
    承接前文关于如何运用AI工具生成时序图的内容【1】,今天我们继续探讨AI驱动的PlantUML:高效创建专业的UML活动图。【1】:https://juejin.cn/post/7407637717206728755【2】:案例参照开源项目ruoyi-cloud:https://gitee.com/y_project/RuoYi-Cloud【3】:PlantUML活动图语法......
  • EPLAN中2D安装板的绘制方法示例
    EPLAN中2D安装板的绘制方法示例如下图所示,在项目中新建一个安装板2D布局图,如下图所示,点击插入------盒子/连接点/安装板--------安装板,如下图所示,在属性–格式中设置安装板的宽度和高度,如下图所示,放置到图框中后发现比例貌似不对,如下图所示,我们重新设置......
  • AI驱动的PlantUML:快速生成专业级UML类图和用例图
    承接前文关于如何运用AI工具生成时序图的内容【1】,今天我们继续探讨AI驱动的PlantUML:高效创建专业的UML类图与用例图。【1】:https://juejin.cn/post/7407637717206728755【2】:案例参照开源项目ruoyi-cloud:https://gitee.com/y_project/RuoYi-CloudAI驱动分析类间关......
  • 潜力大,可创业的Plan B自由副业
    本文由ChatMoney团队出品人生永远要有PlanB,在当下的市场经济环境中,工作收入和日常支出完全不能平衡,导致生活质量越来越不理想。如果觉得实在撑不下去,也许可以换个思路。我在工作之余,也研究了AI领域如何变现。最近对比发现一款Chatmoney全能知识库AI,在整个使用过程中,它不仅帮......
  • ChatMoney是你创业自由副业的plan B!
    本文由ChatMoney团队出品人生永远要有PlanB,在当下的市场经济环境中,工作收入和日常支出完全不能平衡,导致生活质量越来越不理想。如果觉得实在撑不下去,也许可以换个思路。我在工作之余,也研究了AI领域如何变现。最近对比发现一款Chatmoney全能知识库AI,在整个使用过程中,它不仅帮......
  • AI驱动的PlantUML:快速生成专业级UML图表
    **对于程序员来说,编写验收文档中的各种UML图是最让人头疼的事情之一,相信各位读者对此深有体会。**本文将探讨如何利用AI驱动的PlantUML来快速生成专业级别的UML图表,从而减轻这一负担。PlantUML简介PlantUML是一种开源的、易于使用的工具,它允许用户通过简单的文本描述来生成各......