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

ops/2024/11/23 19:38:22/

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


目录

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


11/18 661. 图片平滑器

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

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 = 0v = 0for x,y in pos:newi,newj = i+x,j+yif 0<=newi<m and 0<=newj<n:num+=1v += img[newi][newj]ret[i][j] = v//numreturn ret

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

dp[i]记录从0到i的最短距离
f[i]记录额外边终点是i的起点列表

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]+1for 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记录最短路径的单向通道 roads[i]=j 表示从i到j有一条单向通道
新增道路(i,j)
如果road[i]=-1 说明选择该道路不会减少路径忽略

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-1for 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-=1ans.append(dist)return ans

11/21 3248. 矩阵中的蛇

题目已知在边界内活动
模拟每一个步骤
up -n
right +1
down +n
left -1

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

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

根据题意 质数的平方数是特殊数字
埃氏筛遍历所有质数的平方是否在区间内

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

11/23


11/24



http://www.ppmy.cn/ops/136121.html

相关文章

开源宝藏:Smart-Admin 重复提交防护的 AOP 切面实现详解

首先&#xff0c;说下重复提交问题&#xff0c;基本上解决方案&#xff0c;核心都是根据URL、参数、token等&#xff0c;有一个唯一值检验是否重复提交。 而下面这个是根据用户id&#xff0c;唯一值进行判定&#xff0c;使用两种缓存方式&#xff0c;redis和caffeine&#xff…

工厂方法模式

工厂方法模式详解 定义 工厂方法模式&#xff08;Factory Method Pattern&#xff09;是一种创建型设计模式&#xff0c;定义一个创建对象的接口&#xff0c;但让子类决定要实例化的具体类。通过这种方式&#xff0c;工厂方法模式将对象的实例化推迟到子类。 特点 解耦性&a…

鸿蒙安全控件之粘贴控件简介

粘贴控件是一种特殊的系统安全控件&#xff0c;它允许应用在用户的授权下无提示地读取剪贴板数据。 在应用集成粘贴控件后&#xff0c;用户点击该控件&#xff0c;应用读取剪贴板数据时不会弹窗提示。可以用于任何应用需要读取剪贴板的场景&#xff0c;避免弹窗提示对用户造成…

通过奖励引导树搜索增强大模型(LLM)的推理能力,原理介绍与代码实现

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下通过奖励引导树搜索增强大模型LLM的推理能力&#xff0c;原理介绍与代码实现。本文主要探讨了如何通过奖励引导树搜索来增强大型语言模型&#xff08;LLM&#xff09;的推理能力。首先&#xff0c;文章详细介绍了奖…

【人工智能】Python与Scikit-learn的模型选择与调参:用GridSearchCV和RandomizedSearchCV提升模型性能

解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 在机器学习建模过程中,模型的表现往往取决于参数的选择与优化。Scikit-learn提供了便捷的工具GridSearchCV和RandomizedSearchCV,帮助我们在参数空间中搜索最佳组合以提升模型表现。本文将从理论和实践两个角度…

新160个crackme - 100-E-crackme

运行分析 需根据机器码&#xff0c;填写正确注册码 PE分析 C程序&#xff0c;32位&#xff0c;无壳 静态分析&动态调试 ida无法搜到字符串&#xff0c;使用暂停法找关键函数 首先启动ida动态调试&#xff0c;点击注册来到错误弹窗 点击Debugger -> Pause process 发现断…

【AI系统】GPU 架构与 CUDA 关系

GPU 架构与 CUDA 关系 本文会讲解英伟达 GPU 硬件的基础概念&#xff0c;其次会讲解 CUDA&#xff08;Compute Unified Device Architecture&#xff09;并行计算平台和编程模型&#xff0c;详细讲解 CUDA 线程层次结构&#xff0c;最后将讲解 GPU 的算力是如何计算的&#xf…

成功案例 | Fortinet助力宾堡打造数字化安全“美味王国”

在全球数字化转型的大背景下&#xff0c;烘焙食品行业也迎来了前所未有的变革。2024年全球烘焙食品市场规模预计将达到2337.7亿美元1&#xff0c;而数字化转型则成为推动这一市场增长的关键因素之一。 作为全球首屈一指的烘焙食品生产企业&#xff0c;宾堡集团&#xff08;Gru…