当前位置: 首页 > article >正文

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

  1. 分奇数偶数两个list 在偶数list中的奇数位 插入奇数
  2. 用ij记录偶数奇数位置 遍历list 如果是偶数放入i位置 奇数放入j位置
  3. 遍历一次数组
    使用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

记录了初步解题思路 以及本地实现代码&#xff1b;并不一定为最优 也希望大家能一起探讨 一起进步 目录 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、定位对比&#xff1a;感知与规划的全维覆盖 2.2、数据与技术特性对比 2.3、技术协同&#xff1a;构建全栈研发生态 2.4、应用场景与评估体系 2.5、总结与展望 3、参考文献 1、引言 随着自动驾驶技术向全栈化迈进&#xff0c;Motional 团…...

设计模式 ->模板方法模式(Template Method Pattern)

模板方法模式 模板方法模式是一种行为设计模式&#xff0c;它在一个方法中定义一个操作的算法骨架&#xff0c;而将一些步骤延迟到子类中实现。它允许子类在不改变算法结构的情况下重新定义算法中的某些步骤 特点 算法骨架&#xff1a; 在基类中定义算法的框架延迟实现&…...

DeepSeekMoE 论文解读:混合专家架构的效能革新者

论文链接&#xff1a;DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models 目录 一、引言二、背景知识&#xff08;一&#xff09;MoE架构概述&#xff08;二&#xff09;现有MoE架构的问题 三、DeepSeekMoE架构详解&#xff08;一&a…...

机器学习之心的创作纪念日

机缘 今天&#xff0c;是我成为创作者的第1460天。 在这段时间里&#xff0c;获得了很大的成长。 虽然日常忙碌但还在坚持创作、初心还在。 日常 创作已经成为我生活的一部分&#xff0c;尤其是在我的工作中&#xff0c;创作是不可或缺的&#xff0c;创作都是核心能力之一。…...

【python】简单的flask做页面。一组字母组成的所有单词。这里的输入是一组字母,而输出是所有可能得字母组成的单词列表

目录结构如下&#xff1a; https://github.com/kaede316/Pythons_pj.git 效果&#xff1a; 后续可扩展为工具网站&#xff1a; 更新 2025.02.09 1、增加等间距制作人 时间信息 2、增加判断润年的功能...

[权限提升] Linux 提权 维持 — 系统错误配置提权 - Sudo 滥用提权

关注这个专栏的其他相关笔记&#xff1a;[内网安全] 内网渗透 - 学习手册-CSDN博客 0x01&#xff1a;Sudo 滥用提权原理 Sudo 是一个 Linux 系统管理命令&#xff0c;它允许系统管理员授予普通用户以指定身份执行指定命令的权限。该命令不仅减少了 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的远程仓库地址为国外地址&#xff0c;导致下载依赖时很慢&#xff0c;通过如下方法可以将其修改为国内地址 选中模块&#xff0c;右击&#xff0c;创建setting.xml文件 添加阿里仓库地址 <mirrors><mirror><id>nexus-aliyun</id><…...

LLMs之DeepSeek r1:TinyZero(复现 DeepSeek R1 Zero 的核心功能)的简介、安装和使用方法、案例应用之详细攻略

LLMs之DeepSeek r1&#xff1a;TinyZero(复现 DeepSeek R1 Zero 的核心功能)的简介、安装和使用方法、案例应用之详细攻略 目录 TinyZero的简介 1、TinyZero的特点 TinyZero的安装和使用方法 1、安装 创建 conda 环境 数据准备 (倒计时任务) 训练执行 单GPU (适用于模型…...

亚博microros小车-原生ubuntu支持系列:23 人脸识别追踪

背景知识&#xff1a; 本节跟上一篇的物体识别追踪类似&#xff0c;换了opencv的函数来做人脸识别 函数定义如下&#xff1a; detectMultiScale(image, scaleFactor, minNeighbors, flags, minSize, maxSize)scaleFactor参数控制每个图像序列的缩放比例。该参数决定了在每个…...

[7] 游戏机项目说明

[7] 游戏机项目说明 在这节课中&#xff0c;我们将学习如何基于FreeRTOS开发一个简单的游戏项目。我们会使用一个开源项目nwatch&#xff0c;它是一个基于STM32的开源手表&#xff0c;包含了三个游戏。我们的目标是将这个游戏移植到我们的开发板上&#xff0c;并逐步使用FreeR…...

Kubernetes之kube-proxy运行机制分析

一、基础知识 1.Kubernetes再创建服务时会为服务分配一个虚拟IP地址&#xff0c;客户端通过这个虚拟Ip地址来访问服务&#xff0c;而服务则负责将请求转发到后端pod上。 2.上述阐述的过程为一个反向代理的过程&#xff0c;但是这个反向代理和普通的反向代理的区别是它的IP地址是…...

微信小程序调用企业微信客户服务插件联通企业微信客服

需求背景:用户在小程序页面点击按钮添加企业微信的客服 相关技术:基于uniapp开发的微信小程序 插件名称:企业微信客户服务插件「联系我」插件 - 文档 - 企业微信开发者中心 仔细阅读文档「联系我」插件 - 文档 - 企业微信开发者中心 以下是我的实例代码 1.首先先小程序管…...

如何解决 javax.xml.crypto.dsig.TransformException: 转换异常问题?亲测有效的解决方法!

1. 问题分析 1.1 异常描述 javax.xml.crypto.dsig.TransformException 是在使用 Java XML 加密和签名 API 时&#xff0c;发生的一个常见异常。它通常出现在 XML 数字签名的转换过程中&#xff0c;可能是由于签名、加密或验证过程中发生了错误。 1.2 异常场景 该异常通常发…...

【AI实践】deepseek支持升级git

当前Windows 11 WSL的git是2.17&#xff0c;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 仓库&#xff1a; 添加 B 和 C 作为子模块&#xff1a; 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 是一个基于项目对象模型&#xff08;POM&#xff09;的项目管理和自动化构建工具。它主要服务于 Java 平台&#xff0c;但也支持其他编程语言…...

w196Spring Boot高校教师科研管理系统设计与实现

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;原创团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339;赠送计算机毕业设计600个选题excel文…...

Flutter初相识

资料 1、中文官网&#xff1a;安装和环境配置 | Flutter 中文文档 - Flutter 中文开发者网站 - Flutter 2、线上编写网站&#xff1a;DartPad 构建第一个Flutter应用 class MyApp extends StatelessWidget {const MyApp({Key? key}) : super(key: key);overrideWidget bui…...

(1/100)每日小游戏平台系列

每日小游戏平台 项目简介以及地址 准备开发一个一百天小游戏平台&#xff0c;使用Flask构建的简单游戏导航网站&#xff0c;无需登录&#xff0c;让大家在返工的同时也可以愉快的摸鱼玩耍。 每天更新一个小游戏上传&#xff0c;看看能不能坚持一百天。 这些小游戏主要使用前端…...

IMX6ULL环境搭建遇到的问题和解答更新

IMX6ULL环境搭建遇到的问题 开发板&#xff1a;正点原子IMX6ULL 终端软件串口控制&#xff1a;MobaXterm 1、网络环境搭建三方互ping不通 电脑无网口&#xff0c;使用绿联USB转网口&#xff0c;接网线直连开发板&#xff0c;电脑WiFi上网 按文档设置的 IP 地址&#xff0c;以…...

具身智能学习规划

具身智能&#xff08;Embodied Intelligence&#xff09;强调智能体通过身体与环境的动态交互实现学习和决策&#xff0c;是人工智能、机器人学、认知科学和神经科学交叉的前沿领域。其核心在于打破传统AI的“离身认知”&#xff0c;将智能与物理实体、感知-运动系统紧密结合。…...

kafka生产端之拦截器、分区器、序列化器

文章目录 拦截器序列化器分区器 拦截器 拦截器&#xff08;Interceptor&#xff09;是早在Kafka0.10.0.0中就已经引入的一个功能&#xff0c;Kafka一共有两种拦截器&#xff1a;生产者拦截器和消费者拦截器。本节主要讲述生产者拦截器的相关内容&#xff0c;有关消费者拦截器的…...

BFS算法篇——广度优先搜索,探索未知的旅程(上)

文章目录 前言一、BFS的思路二、BFS的C语言实现1. 图的表示2. BFS的实现 三、代码解析四、输出结果五、总结 前言 广度优先搜索&#xff08;BFS&#xff09;是一种广泛应用于图论中的算法&#xff0c;常用于寻找最短路径、图的遍历等问题。与深度优先搜索&#xff08;DFS&…...

FPGA VGA timing

概念 VGA(Video Graphics Array)时序是控制VGA接口显示图像的关键参数,它主要包括行时序和场时序两部分。以下是对VGA时序的详细解释: 一、VGA接口简介 VGA接口是IBM公司在1987年推出的一种使用模拟信号的视频传输标准,具有成本低、结构简单、应用灵活等优点,至今仍被广…...

pytest生成报告no tests ran in 0.01s

除了基本的环境配置、用例名要以test_开头&#xff0c;有个地方是我自己忽略了&#xff0c;在执行时没有指定用例文件&#xff0c;所以没有找到。 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? 依据其官网的一段解释&#xff1a; Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design. …...

数巅科技中标科学城数科集团AI辅助企业数字化转型评估诊断

自2023年以来&#xff0c;财政部和工信部连续发布通知&#xff0c;强调要做好中小企业数字化转型城市试点工作&#xff0c;鼓励试点城市大力支持优质数字化服务商&#xff0c;研发攻关一批“小快轻准”数字化产品和解决方案&#xff0c;助力制造业关键领域的中小企业实现数字化…...

Linux proc虚拟文件系统

文章目录 简介proc常用节点pid节点procfs接口参考 简介 测试环境&#xff1a;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内核提供的一种让用户和内核内部数据结构进行交…...