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 复制代码

相关推荐
syagain_zsx7 小时前
算法基础篇 · 03 枚举(C++ 题解)
c++·算法·二进制·枚举
weixin_307779137 小时前
C++代码实现MATLAB中的ode23tb函数功能
开发语言·c++·算法·matlab
我是章汕呐8 小时前
地级市能源消耗量及消耗强度数据【2006-2023年】平衡面板
人工智能·经验分享·算法·回归
charliejohn8 小时前
计算机考研 408 数据结构 堆的插入与删除 堆排序
算法
老鱼说AI9 小时前
从点积到希尔伯特空间:向量内积的几何本质与大模型相似度度量
人工智能·深度学习·线性代数·算法·机器学习·数学建模
地平线开发者10 小时前
模型部署|如何解决算子约束
深度学习·算法·自动驾驶
Navigator_Z10 小时前
LeetCode //C - 1254. Number of Closed Islands
c语言·算法·leetcode
deepseek2310 小时前
GPT-6 Astra 破解 FrontierMath 九年悬案拆解:调和熵投票规则反证核恒非空,局部搜索如何终结反例悬赏
人工智能·算法·ai agent
syagain_zsx10 小时前
算法基础篇 · 04 前缀和(C++ 题解)
c++·算法·前缀和
青山是哪个青山12 小时前
LeetCode 123:买卖股票的最佳时机 III
算法