2024.5.6 —— LeetCode 高频题复盘

目录

  • 283. 移动零
  • 153. 寻找旋转排序数组中的最小值
  • 468. 验证IP地址
  • 224. 基本计算器
  • 739. 每日温度
  • 138. 随机链表的复制
  • 47. 全排列 II
  • 207. 课程表
  • LCR 125. 图书整理 II

283. 移动零


题目链接

Python

class Solution:def moveZeroes(self, nums: List[int]) -> None:"""Do not return anything, modify nums in-place instead."""n=len(nums)i=0for j in range(n):if nums[j]!=0:nums[i],nums[j]=nums[j],nums[i]i+=1 # i指向0,因为当前数字不为0才前进

153. 寻找旋转排序数组中的最小值


题目链接

Python

class Solution:def findMin(self, nums: List[int]) -> int:low,high=0,len(nums)-1while low<high:mid=(low+high)//2# 元素值互不相同if nums[mid]<nums[high]:high=midelse: # nums[mid]>nums[high]:low=mid+1return nums[low]

类似题目 33. 搜索旋转排序数组

468. 验证IP地址


题目链接

Python

class Solution:def validIPAddress(self, queryIP: str) -> str:def validIPv6(IP_string):IP_lst = IP_string.split(':')if len(IP_lst) != 8: # IPv6必须由8个子串组成return Falsefor IP in IP_lst:if not 1 <= len(IP) <= 4: # 每个子串必须小于4个字符return Falsefor char in IP:if not ('0' <= char <= '9' or 'a' <= char <= 'f' or 'A' <= char <= 'F'):return Falsereturn Truedef validIPv4(IP_string):IP_lst = IP_string.split('.')if len(IP_lst) != 4: # IPv4必须由4个子串组成return Falsefor IP in IP_lst:if not IP.isdigit() or not 0 <= int(IP) <= 255:return Falseif str(int(IP)) != IP: # 不能有前导0return Falsereturn Trueif queryIP.find(".") != -1:return 'IPv4' if validIPv4(queryIP) else 'Neither'else:return 'IPv6' if validIPv6(queryIP) else 'Neither'return 'Neither'

224. 基本计算器


题目链接

Python

class Solution:def calculate(self, s: str) -> int:ops=[1] # 栈顶元素记录了当前位置所处的每个括号所「共同形成」的符号sign=1 # 代表「当前」的符号res=0n=len(s)i=0while i<n:if s[i]==" ":i+=1elif s[i]=="+":sign=ops[-1]i+=1elif s[i]=="-":sign=-ops[-1]i+=1elif s[i]=="(":ops.append(sign)i+=1elif s[i]==")":ops.pop()i+=1else:num=0while i<n and s[i].isdigit():num=num*10+ord(s[i])-ord("0")i+=1res+=num*signreturn res

进阶版 227. 基本计算器 II

739. 每日温度


题目链接

Python

class Solution:def dailyTemperatures(self, temperatures: List[int]) -> List[int]:res=[0]*len(temperatures)stack=[0]for i in range(1,len(temperatures)):if temperatures[stack[-1]]>=temperatures[i]:stack.append(i)else:while stack and temperatures[stack[-1]]<temperatures[i]:res[stack[-1]]=i-stack[-1]stack.pop()stack.append(i)return res

138. 随机链表的复制


题目链接

Python

"""
# Definition for a Node.
class Node:def __init__(self, x: int, next: 'Node' = None, random: 'Node' = None):self.val = int(x)self.next = nextself.random = random
"""class Solution:def copyRandomList(self, head: 'Optional[Node]') -> 'Optional[Node]':if not head:return None# 在每个原节点后面创建一个新节点# 1->1'->2->2'->3->3'cur=headwhile cur:new_node=Node(cur.val)new_node.next=cur.nextcur.next=new_nodecur=new_node.next# 设置新节点的随机结点cur=headwhile cur:if cur.random:cur.next.random=cur.random.nextcur=cur.next.next# 将两个链表分开dummy=Node(0)cur=headpre=dummywhile cur:pre.next=cur.nextpre=pre.nextcur.next=pre.nextcur=cur.nextreturn dummy.next

47. 全排列 II


题目链接

建议先做 46. 全排列

Python

class Solution:def permuteUnique(self, nums: List[int]) -> List[List[int]]:path=[]res = []def backtrack(nums, used):if len(path)==len(nums):res.append(path[:])returnfor i in range(len(nums)):if i>0 and nums[i] == nums[i-1] and used[i-1]==False:continueif not used[i]:path.append(nums[i])used[i] = Truebacktrack(nums, used)path.pop()used[i] = Falsenums.sort()used=[False]*len(nums)backtrack(nums,used)return res

207. 课程表


题目链接

Python

class Solution:def canFinish(self, numCourses: int, prerequisites: List[List[int]]) -> bool:# 初始化邻接表adjacency=[[] for _ in range(numCourses)]# 初始化每个点的入度indegrees=[0 for _ in range(numCourses)]# 遍历prerequisites为邻接表、每个点的入度赋值for cur,pre in prerequisites:adjacency[pre].append(cur)indegrees[cur]+=1# 将所有入度为0的节点入队from collections import dequequeue=deque()for i in range(numCourses):if indegrees[i]==0:queue.append(i)# 使用拓扑排序(依次将队列中入度为0的节点出队)while queue:pre=queue.popleft()numCourses-=1# 将pre后面的节点cur的入度统统-1for cur in adjacency[pre]:indegrees[cur]-=1if indegrees[cur]==0:queue.append(cur)return not numCourses # 有环numCourses非0返回False# 无环numCourses为0返回True

进阶版 210. 课程表 II

LCR 125. 图书整理 II


题目链接

类似题目 232. 用栈实现队列

Python

class CQueue:def __init__(self):self.stack1=[]self.stack2=[]def appendTail(self, value: int) -> None:self.stack1.append(value)def deleteHead(self) -> int:if self.stack2:return self.stack2.pop()if not self.stack1:return -1while self.stack1:self.stack2.append(self.stack1.pop())return self.stack2.pop()# Your CQueue object will be instantiated and called as such:
# obj = CQueue()
# obj.appendTail(value)
# param_2 = obj.deleteHead()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/8516.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.net 6.0 框架集成ef实战,步骤详解

一、代码框架搭建 搭建如下代码架构: 重点含EntityFrameworkCore工程,该工程中包含AppDbContext.cs和数据表实体AggregateObject 1、AppDbContext 代码案例 //AppDbContext 代码案例using Microsoft.EntityFrameworkCore;namespace EntityFrameworkCore {public class Ap…

思通数科大模型在智能数据查询系统中的深度应用:销售数据分析的革新

在企业决策支持系统中&#xff0c;销售数据分析占据着举足轻重的地位。思通数科的大模型技术&#xff0c;结合自然语言处理&#xff08;NLP&#xff09;和机器学习&#xff0c;为智能数据查询系统提供了强大的分析能力。本文将详细描述思通数科大模型在销售数据分析中的应用&am…

2024 GESP6级 编程第一题 游戏

题目描述 你有四个正整数 &#xff0c;并准备用它们玩一个简单的小游戏。 在一轮游戏操作中&#xff0c;你可以选择将 减去 &#xff0c;或是将 减去 。游戏将会进行多轮操作&#xff0c;直到当 时游戏结束。 你想知道游戏结束时有多少种不同的游戏操作序列。两种游戏操作…

C++ Primer 中文版(第 5 版)- 第一单元练习

第一单元 练习 1.1 编写程序&#xff0c;在标准输出上打印Hello, World。 #include <iostream>int main(int argc, const char * argv[]) {std::cout << "Hello, ceshi!\n";return 0; }练习 1.2 我们编写程序使用乘法运算符*&#xff0c;来打印两个数…

科沃斯,「扫地茅」荣光恐难再现

作者 | 辰纹 来源 | 洞见新研社 科沃斯恐怕已经很难再回到被市场誉为“扫地茅”时的荣光了。 不久前&#xff0c;科沃斯发布2023年财报&#xff0c;报告期内营业收入155亿&#xff0c;同比仅增长1.16%&#xff0c;归母净利润6.12亿元&#xff0c;同比下降63.96%&#xff0c;直…

20240508请问GTX2080TI的300和300A核心的差异?

20240508请问GTX2080TI的300和300A核心的差异&#xff1f; 在拼多多/淘宝上&#xff0c;GTX2080TI的300A核心的会比300核心的贵100&#xffe5;左右。 但是怎么区分呢&#xff1f; 300a核心和300请问怎么区分呢&#xff1f;[嘻嘻] devicr ID diviceid 1e07是300a 1e04是300 Gp…

【文章转载】ChatGPT 提示词十级技巧: 从新手到专家

学习了微博网友宝玉xp老师《ChatGPT 提示词十级技巧: 从新手到专家》 个人学习要点&#xff1a; 1、关于提示中避免使用否定句&#xff0c;播主说&#xff1a;“没有人能准确解释为什么&#xff0c;但大语言模型在你告诉它去做某事时&#xff0c;表现似乎比你让它不做某事时更…

Java进阶05 时间API异常

Java进阶05 一、递归算法 方法直接&#xff08;自己调自己&#xff09;或间接&#xff08;方法调其他方法&#xff0c;其他方法又回调自己&#xff09;调用自身 1、递归思想 把一个复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。需要注意&#xff0c;设计递…

JavaSE——方法详解

1. 方法的概念 方法就是一个代码片段 . 类似于 C 语言中的 " 函数 " 。 方法存在的意义 : 1. 是能够模块化的组织代码(当代码规模比较复杂的时候). 2. 做到代码被重复使用, 一份代码可以在多个位置使用. 3. 让代码更好理解更简单. 4. 直接调用现有方法开发, 不…

QT实战百度语音识别

前言 随着学习的深入&#xff0c;感觉愈发缺乏满足感。刚好看到微信语音转文字的功能&#xff0c;经网上查询&#xff0c;发现可以使用 QT 百度语音识别技术 实现这一功能。当然&#xff0c;由于使用的 QT 和 百度语音识别&#xff0c;那么看不到一些具体的底层实现&#xff…

VALSE 2024 Workshop报告分享┆探索短视频生成与编辑的前沿技术

2024年视觉与学习青年学者研讨会&#xff08;VALSE 2024&#xff09;于5月5日到7日在重庆悦来国际会议中心举行。本公众号将全方位地对会议的热点进行报道&#xff0c;方便广大读者跟踪和了解人工智能的前沿理论和技术。欢迎广大读者对文章进行关注、阅读和转发。文章是对报告人…

Python高级编程-DJango1

Python高级编程 灵感并不是在逻辑思考的延长线上产生 而是在破除逻辑或常识的地方才有灵感 目录 Python高级编程 1.python学习之前的准备 ​编辑 2.DJango 开发网站 3.创建项目 4.&#xff44;&#xff4a;&#xff41;&#xff4e;&#xff47;项目结构介绍 &#xff11;&…

Linux-信号保存

1. 概念 进程执行信号的处理动作&#xff0c;称为 信号递达&#xff08;Delivery&#xff09; 信号从产生到递达之间的状态&#xff0c;称为 信号未决&#xff08;Pending&#xff09; 进程可以选择 阻塞&#xff08;Block&#xff09;某个信号 过程&#xff1a; 信号产生 ——…

linux上go项目打包与部署

1.第一步把项目打包 1.确保本地goland的操作系统为linux go env找到GOOS如果为window就修改为Linux 修改命令为 go env -w GOOSlinux2.打包 在项目根目录下输入 go build main.go然后项目根目录下会出现一个mian的二进制文件 3.上传包 将 main 程序包放到服务的目录下&…

鸿蒙开发接口Ability框架:【 (ServiceExtensionAbility)】

ServiceExtensionAbility ServiceExtensionAbility模块提供ServiceExtension服务扩展相关接口的能力。 说明&#xff1a; 本模块首批接口从API version 9开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 本模块接口仅可在Stage模型下使用。 导入…

【C++】每日一题 114 二叉树展开为链表

给你二叉树的根结点 root &#xff0c;请你将它展开为一个单链表&#xff1a; 展开后的单链表应该同样使用 TreeNode &#xff0c;其中 right 子指针指向链表中下一个结点&#xff0c;而左子指针始终为 null 。 展开后的单链表应该与二叉树 先序遍历 顺序相同。 #include <…

QT设计模式:适配器模式

基本概念 适配器模式&#xff08;Adapter Pattern&#xff09;是一种结构型设计模式&#xff0c;允许将一个类的接口转换成客户端所期望的另一个接口&#xff0c;可以让原本由于接口不兼容而不能一起工作的类能够一起工作。 适配器模式需要实现的部分为&#xff1a; Target类…

MACHENIKE M7 无线鼠标快捷键

MACHENIKE M7 无线鼠标快捷键 前后灯 颜色&#xff1a;红-紫-蓝&#xff08;默认值&#xff09;-绿-青-黄-粉 操作&#xff1a;同时按下鼠标左键右键 呼吸灯 模式&#xff1a;单色常亮、单色呼吸、七彩呼吸 操作&#xff1a;同时按下鼠标左键右键中键

Spring IoCDI—DI详解

在Spring框架中&#xff0c;依赖注入&#xff08;Dependency Injection&#xff0c;DI&#xff09;是一种重要的设计模式&#xff0c;它通过将对象的依赖关系从代码中硬编码移动到配置文件中&#xff0c;从而实现了松耦合、易于维护和测试的代码。下面我将详细介绍Spring中的依…

【栈】Leetcode 1047. 删除字符串中的所有相邻重复项

题目讲解 1047. 删除字符串中的所有相邻重复项 算法讲解 使用栈这个数据结构&#xff0c;每一次入栈的时候观察此时的字符和当前栈顶字符是否相等&#xff0c;如相等&#xff1a;栈顶出栈&#xff1b;不相等&#xff1a;入栈 class Solution { public:string removeDuplica…