LeetCode 每日一题 2025/2/3-2025/2/9
记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步
目录
- 2/3 680. 验证回文串 II
- 2/4 922. 按奇偶排序数组 II
- 2/5 90. 子集 II
- 2/6 47. 全排列 II
- 2/7 59. 螺旋矩阵 II
- 2/8 63. 不同路径 II
- 2/9 80. 删除有序数组中的重复项 II
2/3 680. 验证回文串 II
头尾比较 可以有一次误差 遇到不一致时
分两种情况 去掉left或者去掉right 其中一种满足就可
def validPalindrome(s):""":type s: str:rtype: bool"""def sub(s):if len(s)==0 or len(s)==1:return Truei,j=0,len(s)-1while i<j:if s[i]!=s[j]:return Falseelse:i+=1j-=1return Truei,j=0,len(s)-1while i<j:if s[i]!=s[j]:return sub(s[i+1:j+1]) or sub(s[i:j]) else:i+=1j-=1return Truedef validPalindrome2(s):""":type s: str:rtype: bool"""if s==s[::-1]:return Truei,j=0,len(s)-1while i<j:if s[i]==s[j]:i+=1j-=1else:tmp = s[:i]+s[i+1:]if tmp==tmp[::-1]:return Truetmp = s[:j]+s[j+1:]if tmp==tmp[::-1]:return Truereturn False
2/4 922. 按奇偶排序数组 II
- 分奇数偶数两个list 在偶数list中的奇数位 插入奇数
- 用ij记录偶数奇数位置 遍历list 如果是偶数放入i位置 奇数放入j位置
- 遍历一次数组
使用ji,ou两个数组记录不符合未知的数
遇到不符合位置的数时 从ji,ou数组中找到时候存在可交换的位置 有则交换 无则将该位置放入数组
def sortArrayByParityII(nums):""":type nums: List[int]:rtype: List[int]"""odd = [x for x in nums if x%2==1]ans = [x for x in nums if x%2==0]p = 1for i in odd:ans.insert(p,i)p+=2return ansdef sortArrayByParityII2(nums):""":type nums: List[int]:rtype: List[int]"""i,j=0,1ans = [0]*len(nums)for x in nums:if x%2==0:ans[i]=xi+=2else:ans[j]=xj+=2def sortArrayByParityII3( nums):""":type nums: List[int]:rtype: List[int]"""ji=[]ou=[]for i in range(len(nums)):if i%2!=nums[i]%2:if i%2==0:if len(ji)>0:loc = ji.pop()nums[loc],nums[i]=nums[i],nums[loc]else:ou.append(i)else:if len(ou)>0:loc = ou.pop()nums[loc],nums[i]=nums[i],nums[loc]else:ji.append(i)return nums
2/5 90. 子集 II
set 记录重复
def subsetsWithDup(nums):""":type nums: List[int]:rtype: List[List[int]]"""ret = []ret.append([])ck = set()for num in nums:l = []for tmp in ret:x = tmp[:]x.append(num)t = tuple(sorted(x))if t not in ck:l.append(x)ck.add(t) ret.extend(l)return ret
2/6 47. 全排列 II
统计每个数字出现次数 回溯
def permuteUnique(nums):""":type nums: List[int]:rtype: List[List[int]]"""m={}for i in nums:m[i] = m.get(i,0)+1n = len(nums)ret = []def back(m,l):if len(l)==n:ret.append(l)returnfor c in m:if m[c]>0:m[c]-=1l.append(c)back(m,l[:])l.pop()m[c]+=1back(m,[])return ret
2/7 59. 螺旋矩阵 II
顺指针可以 → ↓ ← ↑ 分别对应四种坐标变化(0,1),(1,0),(0,-1),(-1,0)
从→开始 如果遇到边界或者重复则改为下一种走法
def generateMatrix(n):""":type n: int:rtype: List[List[int]]"""matrix = [[0]*n for _ in range(n)]steplist =[(0,1),(1,0),(0,-1),(-1,0)]step = 0num=2i,j=0,0matrix[0][0]=1while num<=n*n:x,y = steplist[step]ti,tj = i+x,j+yif ti<0 or tj<0 or ti>=n or tj>=n or matrix[ti][tj]>0:step = (step+1)%4continuei,j = ti,tjmatrix[i][j] = numnum+=1return matrix
2/8 63. 不同路径 II
抵达当前位置的路径数量为 左侧位置和上方位置数量之和
def uniquePathsWithObstacles(obstacleGrid):""":type obstacleGrid: List[List[int]]:rtype: int"""m,n=len(obstacleGrid),len(obstacleGrid[0])ans = [[0]*n for _ in range(m)]for i in range(m):if obstacleGrid[i][0]==0:ans[i][0]=1else:breakfor j in range(n):if obstacleGrid[0][j]==0:ans[0][j]=1else:breakfor i in range(1,m):for j in range(1,n):if obstacleGrid[i][j]==0:ans[i][j]=ans[i-1][j]+ans[i][j-1]return ans[-1][-1]
2/9 80. 删除有序数组中的重复项 II
1.使用map记录重复
2.查看与前两位的比较 是否重复两次以上
def removeDuplicates(nums):""":type nums: List[int]:rtype: int"""m={}loc =0for i in range(len(nums)):if m.get(nums[i],0)>=2:continuem[nums[i]] = m.get(nums[i],0)+1nums[loc] = nums[i]loc+=1return locdef removeDuplicates2(nums):""":type nums: List[int]:rtype: int"""if len(nums)<3:return len(nums)loc =2for i in range(2,len(nums)):if nums[loc-2]==nums[i]:continuenums[loc] = nums[i]loc+=1return loc
相关文章:
LeetCode 每日一题 2025/2/3-2025/2/9
记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 2/3 680. 验证回文串 II2/4 922. 按奇偶排序数组 II2/5 90. 子集 II2/6 47. 全排列 II2/7 59. 螺旋矩阵 II2/8 63. 不同路径 II2/9 80. 删除有序数组中的重复项 II 2/3 680…...
自动驾驶数据集三剑客:nuScenes、nuImages 与 nuPlan 的技术矩阵与生态协同
目录 1、引言 2、主要内容 2.1、定位对比:感知与规划的全维覆盖 2.2、数据与技术特性对比 2.3、技术协同:构建全栈研发生态 2.4、应用场景与评估体系 2.5、总结与展望 3、参考文献 1、引言 随着自动驾驶技术向全栈化迈进,Motional 团…...
设计模式 ->模板方法模式(Template Method Pattern)
模板方法模式 模板方法模式是一种行为设计模式,它在一个方法中定义一个操作的算法骨架,而将一些步骤延迟到子类中实现。它允许子类在不改变算法结构的情况下重新定义算法中的某些步骤 特点 算法骨架: 在基类中定义算法的框架延迟实现&…...
DeepSeekMoE 论文解读:混合专家架构的效能革新者
论文链接:DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models 目录 一、引言二、背景知识(一)MoE架构概述(二)现有MoE架构的问题 三、DeepSeekMoE架构详解(一&a…...
机器学习之心的创作纪念日
机缘 今天,是我成为创作者的第1460天。 在这段时间里,获得了很大的成长。 虽然日常忙碌但还在坚持创作、初心还在。 日常 创作已经成为我生活的一部分,尤其是在我的工作中,创作是不可或缺的,创作都是核心能力之一。…...
【python】简单的flask做页面。一组字母组成的所有单词。这里的输入是一组字母,而输出是所有可能得字母组成的单词列表
目录结构如下: https://github.com/kaede316/Pythons_pj.git 效果: 后续可扩展为工具网站: 更新 2025.02.09 1、增加等间距制作人 时间信息 2、增加判断润年的功能...
[权限提升] Linux 提权 维持 — 系统错误配置提权 - Sudo 滥用提权
关注这个专栏的其他相关笔记:[内网安全] 内网渗透 - 学习手册-CSDN博客 0x01:Sudo 滥用提权原理 Sudo 是一个 Linux 系统管理命令,它允许系统管理员授予普通用户以指定身份执行指定命令的权限。该命令不仅减少了 Root 用户的登录时间和管理时…...
【算法】快速排序算法的实现:C 和 C++ 版本
1. 算法简介 快速排序(Quick Sort)是由英国计算机科学家霍尔(C.A.R. Hoare)在1960年提出的一种高效的排序算法。它采用了分治法(Divide and Conquer)策略,通常具有很好的性能。在平均情况下,快速排序的时间复杂度为 O(n log n),但在最坏情况下可能退化为 O(n^2),不过…...
如何修改IDEA的maven远程仓库地址
IDEA自动的maven的远程仓库地址为国外地址,导致下载依赖时很慢,通过如下方法可以将其修改为国内地址 选中模块,右击,创建setting.xml文件 添加阿里仓库地址 <mirrors><mirror><id>nexus-aliyun</id><…...
LLMs之DeepSeek r1:TinyZero(复现 DeepSeek R1 Zero 的核心功能)的简介、安装和使用方法、案例应用之详细攻略
LLMs之DeepSeek r1:TinyZero(复现 DeepSeek R1 Zero 的核心功能)的简介、安装和使用方法、案例应用之详细攻略 目录 TinyZero的简介 1、TinyZero的特点 TinyZero的安装和使用方法 1、安装 创建 conda 环境 数据准备 (倒计时任务) 训练执行 单GPU (适用于模型…...
亚博microros小车-原生ubuntu支持系列:23 人脸识别追踪
背景知识: 本节跟上一篇的物体识别追踪类似,换了opencv的函数来做人脸识别 函数定义如下: detectMultiScale(image, scaleFactor, minNeighbors, flags, minSize, maxSize)scaleFactor参数控制每个图像序列的缩放比例。该参数决定了在每个…...
[7] 游戏机项目说明
[7] 游戏机项目说明 在这节课中,我们将学习如何基于FreeRTOS开发一个简单的游戏项目。我们会使用一个开源项目nwatch,它是一个基于STM32的开源手表,包含了三个游戏。我们的目标是将这个游戏移植到我们的开发板上,并逐步使用FreeR…...
Kubernetes之kube-proxy运行机制分析
一、基础知识 1.Kubernetes再创建服务时会为服务分配一个虚拟IP地址,客户端通过这个虚拟Ip地址来访问服务,而服务则负责将请求转发到后端pod上。 2.上述阐述的过程为一个反向代理的过程,但是这个反向代理和普通的反向代理的区别是它的IP地址是…...
微信小程序调用企业微信客户服务插件联通企业微信客服
需求背景:用户在小程序页面点击按钮添加企业微信的客服 相关技术:基于uniapp开发的微信小程序 插件名称:企业微信客户服务插件「联系我」插件 - 文档 - 企业微信开发者中心 仔细阅读文档「联系我」插件 - 文档 - 企业微信开发者中心 以下是我的实例代码 1.首先先小程序管…...
如何解决 javax.xml.crypto.dsig.TransformException: 转换异常问题?亲测有效的解决方法!
1. 问题分析 1.1 异常描述 javax.xml.crypto.dsig.TransformException 是在使用 Java XML 加密和签名 API 时,发生的一个常见异常。它通常出现在 XML 数字签名的转换过程中,可能是由于签名、加密或验证过程中发生了错误。 1.2 异常场景 该异常通常发…...
【AI实践】deepseek支持升级git
当前Windows 11 WSL的git是2.17,Android Studio提示需要升级到2.19版本 网上找到指导文章 安装git 2.19.2 cd /usr/src wget https://www.kernel.org/pub/software/scm/git/git-2.19.2.tar.gz tar xzf git-2.19.2.tar.gz cd git-2.19.2 make prefix/usr/l…...
git 子模块管理(一个仓库中有多个子仓库)
使用 Git 子模块管理 B 和 C 仓库 在A仓库中维护B和C仓库 进入 A 仓库: 添加 B 和 C 作为子模块: git submodule add https://your-repo-url/B.git B-repo git submodule add https://your-repo-url/C.git C-repo git commit -m "Add B and C a…...
Maven 安装配置(完整教程)
文章目录 一、Maven 简介二、下载 Maven三、配置 Maven3.1 配置环境变量3.2 Maven 配置3.3 IDEA 配置 四、结语 一、Maven 简介 Maven 是一个基于项目对象模型(POM)的项目管理和自动化构建工具。它主要服务于 Java 平台,但也支持其他编程语言…...
w196Spring Boot高校教师科研管理系统设计与实现
🙊作者简介:多年一线开发工作经验,原创团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹赠送计算机毕业设计600个选题excel文…...
Flutter初相识
资料 1、中文官网:安装和环境配置 | Flutter 中文文档 - Flutter 中文开发者网站 - Flutter 2、线上编写网站:DartPad 构建第一个Flutter应用 class MyApp extends StatelessWidget {const MyApp({Key? key}) : super(key: key);overrideWidget bui…...
(1/100)每日小游戏平台系列
每日小游戏平台 项目简介以及地址 准备开发一个一百天小游戏平台,使用Flask构建的简单游戏导航网站,无需登录,让大家在返工的同时也可以愉快的摸鱼玩耍。 每天更新一个小游戏上传,看看能不能坚持一百天。 这些小游戏主要使用前端…...
IMX6ULL环境搭建遇到的问题和解答更新
IMX6ULL环境搭建遇到的问题 开发板:正点原子IMX6ULL 终端软件串口控制:MobaXterm 1、网络环境搭建三方互ping不通 电脑无网口,使用绿联USB转网口,接网线直连开发板,电脑WiFi上网 按文档设置的 IP 地址,以…...
具身智能学习规划
具身智能(Embodied Intelligence)强调智能体通过身体与环境的动态交互实现学习和决策,是人工智能、机器人学、认知科学和神经科学交叉的前沿领域。其核心在于打破传统AI的“离身认知”,将智能与物理实体、感知-运动系统紧密结合。…...
kafka生产端之拦截器、分区器、序列化器
文章目录 拦截器序列化器分区器 拦截器 拦截器(Interceptor)是早在Kafka0.10.0.0中就已经引入的一个功能,Kafka一共有两种拦截器:生产者拦截器和消费者拦截器。本节主要讲述生产者拦截器的相关内容,有关消费者拦截器的…...
BFS算法篇——广度优先搜索,探索未知的旅程(上)
文章目录 前言一、BFS的思路二、BFS的C语言实现1. 图的表示2. BFS的实现 三、代码解析四、输出结果五、总结 前言 广度优先搜索(BFS)是一种广泛应用于图论中的算法,常用于寻找最短路径、图的遍历等问题。与深度优先搜索(DFS&…...
FPGA VGA timing
概念 VGA(Video Graphics Array)时序是控制VGA接口显示图像的关键参数,它主要包括行时序和场时序两部分。以下是对VGA时序的详细解释: 一、VGA接口简介 VGA接口是IBM公司在1987年推出的一种使用模拟信号的视频传输标准,具有成本低、结构简单、应用灵活等优点,至今仍被广…...
pytest生成报告no tests ran in 0.01s
除了基本的环境配置、用例名要以test_开头,有个地方是我自己忽略了,在执行时没有指定用例文件,所以没有找到。 if __name__ __main__:pytest.main(["testcases/test_demo.py","-svq", __file__, --alluredir./allure-r…...
Django开发入门 – 0.Django基本介绍
Django开发入门 – 0.Django基本介绍 A Brief Introduction to django By JacksonML 1. Django简介 1) 什么是Django? 依据其官网的一段解释: Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design. …...
数巅科技中标科学城数科集团AI辅助企业数字化转型评估诊断
自2023年以来,财政部和工信部连续发布通知,强调要做好中小企业数字化转型城市试点工作,鼓励试点城市大力支持优质数字化服务商,研发攻关一批“小快轻准”数字化产品和解决方案,助力制造业关键领域的中小企业实现数字化…...
Linux proc虚拟文件系统
文章目录 简介proc常用节点pid节点procfs接口参考 简介 测试环境:Linux dev-PC 5.18.17-amd64-desktop-hwe #20.01.00.10 SMP PREEMPT_DYNAMIC Thu Jun 15 16:17:50 CST 2023 x86_64 GNU/Linux proc虚拟文件系统是linux内核提供的一种让用户和内核内部数据结构进行交…...
