LeetCode 每日一题 2024/11/18-2024/11/24

记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步


目录

      • [11/18 661. 图片平滑器](#11/18 661. 图片平滑器)
      • [11/19 3243. 新增道路查询后的最短距离 I](#11/19 3243. 新增道路查询后的最短距离 I)
      • [11/20 3244. 新增道路查询后的最短距离 II](#11/20 3244. 新增道路查询后的最短距离 II)
      • [11/21 3248. 矩阵中的蛇](#11/21 3248. 矩阵中的蛇)
      • [11/22 3233. 统计不是特殊数字的数字数量](#11/22 3233. 统计不是特殊数字的数字数量)
      • 11/23
      • 11/24

11/18 661. 图片平滑器

遍历每一个点 统计九个位置是否满足

python 复制代码
def imageSmoother(img):
    """
    :type img: List[List[int]]
    :rtype: List[List[int]]
    """
    pos = [(-1,-1),(-1,0),(-1,1),(0,-1),(0,1),(0,0),(1,-1),(1,0),(1,1)]
    m,n = len(img),len(img[0])
    ret = [[0]*n for _ in range(m)]
    for i in range(m):
        for j in range(n):
            num = 0
            v = 0
            for x,y in pos:
                newi,newj = i+x,j+y
                if 0<=newi<m and 0<=newj<n:
                    num+=1
                    v += img[newi][newj]
            ret[i][j] = v//num
    return ret

11/19 3243. 新增道路查询后的最短距离 I

dpi记录从0到i的最短距离

fi记录额外边终点是i的起点列表

python 复制代码
def shortestDistanceAfterQueries(n, queries):
    """
    :type n: int
    :type queries: List[List[int]]
    :rtype: List[int]
    """
    f=[[] for _ in range(n)]
    dp=list(range(n))
    ans = []
    for l,r in queries:
        f[r].append(l)
        if dp[l]+1<dp[r]:
            dp[r]=dp[l]+1
            for i in range(r+1,n):
                minv = float("inf")
                for j in f[i]:
                    minv = min(minv,dp[j])
                dp[i]=min(dp[i],dp[i-1]+1,minv+1)
        ans.append(dp[-1])
    return ans
        

11/20 3244. 新增道路查询后的最短距离 II

不包含两条交叉的单向通道

新增一条单向通道

如果被已考虑的单向通道包含 则不会使路径变短

否则 去掉被包含的单向通道 将该通道加入最短路径

roads记录最短路径的单向通道 roadsi=j 表示从i到j有一条单向通道

新增道路(i,j)

如果roadi=-1 说明选择该道路不会减少路径忽略

python 复制代码
def shortestDistanceAfterQueries(n, queries):
    """
    :type n: int
    :type queries: List[List[int]]
    :rtype: List[int]
    """
    road=[i+1 for i in range(n)]
    ans = []
    dist = n-1
    for q in queries:
        k = road[q[0]]
        road[q[0]]=q[1]
        while k!=-1 and k<q[1]:
            road[k],k=-1,road[k]
            dist-=1
        ans.append(dist)
    return ans

11/21 3248. 矩阵中的蛇

题目已知在边界内活动

模拟每一个步骤

up -n

right +1

down +n

left -1

python 复制代码
def finalPositionOfSnake(n, commands):
    """
    :type n: int
    :type commands: List[str]
    :rtype: int
    """
    cur = 0
    for c in commands:
        if c=="UP":
            cur-=n
        elif c=="DOWN":
            cur+=n
        elif c=="RIGHT":
            cur+=1
        else:
            cur-=1
    return cur

11/22 3233. 统计不是特殊数字的数字数量

根据题意 质数的平方数是特殊数字

埃氏筛遍历所有质数的平方是否在区间内

python 复制代码
def nonSpecialCount(l, r):
    """
    :type l: int
    :type r: int
    :rtype: int
    """
    import math
    n=int(math.sqrt(r))
    v = [0]*(n+1)
    ans = r-l+1
    for i in range(2,n+1):
        if v[i]==0:
            if l<=i*i<=r:
                ans-=1
            for j in range(i*2,n+1,i):
                v[j]=1
    return ans

11/23

python 复制代码

11/24

python 复制代码

相关推荐
suhan7 小时前
【数据结构】三、栈和队列:6.链队列、双端队列、队列的应用(树的层次遍历、广度优先BFS、先来先服务FCFS)
数据结构·后端·算法
姜鱼问生8 小时前
Docker Volume 备份与恢复实战:不停机迁移数据
后端·算法·架构
suhan8 小时前
【数据结构】三、栈和队列:5.顺序队列(循环队列)(初始化,判空判满,入队,出队,实例)
数据结构·后端·算法
suhan8 小时前
【数据结构】三、栈和队列:3.链栈(链栈栈的初始化,判空,进栈,出栈,读取栈顶,链栈实例)
数据结构·后端·算法
大雄很用心8 小时前
如何理解时间复杂度与空间复杂度?| 面试刷题笔记02
算法
姜鱼问生8 小时前
服务器磁盘满了?从告警到清理的完整排查
后端·算法·架构
suhan8 小时前
【数据结构】三、栈和队列:4.栈的应用(括号匹配,四则运算表达式求值,进制转换,递归)
数据结构·后端·算法
suhan8 小时前
【数据结构】三、栈和队列:2.顺序栈&共享栈(顺序栈的初始化,判空,进栈,出栈,读取栈顶,顺序栈实例)
数据结构·后端·算法
iCxhust8 小时前
Matlab求解发电机的极限切除角
开发语言·算法·matlab·电力系统
AI语宙漫游指南8 小时前
RAG 向量检索(上):从 FLAT 到 IVF,查得快为何可能漏?
后端·算法