python leetcode简单练习(2)

20 有效括号


方法思路

要判断一个仅由括号组成的字符串是否有效,可以使用栈这一数据结构。核心思路是遍历字符串中的每个字符,遇到左括号时压入栈中,遇到右括号时检查栈顶的左括号是否匹配。若匹配则弹出栈顶元素,否则返回false。最终,若栈为空则说明所有括号正确闭合。

class Solution:def isValid(self,s):class Solution:def isValid(self,s):dic = {')':'(',']':'[','}':'{'}stack = []for i in s:if i in dic:if not stack or dic[i] != stack[-1]:return Falsestack.pop()else:stack.append(i)return not stack

 21. 合并两个有序链表

方法思路

合并两个有序链表可以通过逐个比较节点值并逐步构建新链表来实现。使用虚拟头节点简化初始条件处理,然后用指针依次连接较小值的节点,直到其中一个链表遍历完毕,最后将剩余链表直接接上。

class ListNode:def __init__(self,val=0,next=None):self.val = valself.next = next
class Solution:def mergeTwoLists(self,list1,list2):LNode = ListNode()p = LNode #虚拟指针while list1 and list2:if list1.val <= list2.val:p.next = list1list1 = list1.nextelse:p.next = list2list2 = list2.nextp = p.nextp.next = list1 if list1 else list2return LNode.next

26. 删除有序数组中的重复项

但实际上题目只要求前k个元素正确,后面的元素无关紧要。

方法思路

使用双指针法,快指针遍历数组,慢指针记录当前有效位置。由于数组已排序,重复元素必然相邻,遇到不同元素时将其移至慢指针位置,最后返回慢指针位置+1即为新数组长度。

#k是慢指针,用来记录我们想要的数组真正的下标,i是快指针用来遍历数组
class Solution:def removeDuplicates(self,nums):if not nums:return 0k = 0for i in range(1,len(nums)):if nums[i] != nums[k]:k += 1nums[k] = nums[i]return k+1

27.移除元素

但实际上题目只要求前k个元素正确,后面的元素无关紧要。

使用双指针法,快指针遍历数组,慢指针记录有效位置。将非目标值的元素移至数组前部,最后返回有效长度。

class Solution:def removeElement(self,nums,val):if not nums:return 0k = 0for i in range(0,len(nums)):if nums[i] != val:nums[k] = nums[i]k += 1return k

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

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

相关文章

AI 数字人短视频数字人口播源码:短视频内容生产的新引擎​

在当下信息爆炸的时代&#xff0c;短视频已成为主流的信息传播与娱乐方式之一。在如此庞大的市场需求下&#xff0c;如何高效、创新地生产短视频内容成为了行业关注的焦点。AI 数字人短视频数字人口播源码应运而生&#xff0c;为短视频内容生产带来了全新的变革。​ 一、行业背…

AI对传统IT行业的变革

传统 IT 行业长期以来面临着诸多挑战。系统类型繁杂、复杂度高&#xff0c;不少环节依赖人工操作&#xff0c;智能化水平偏低&#xff0c;极大地制约了业务运营效率。此外&#xff0c;传统 IT 企业背负沉重的历史包袱&#xff0c;重构系统不仅成本高昂&#xff0c;由于现有系统…

mapbox基础,使用geojson加载cluster聚合图层

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️circle点图层样式二、🍀使用geojson加…

Git回退文件到指定提交

你可以使用 git checkout 命令将某个文件回退到指定提交的版本。以下是具体步骤&#xff1a; 1. 找到目标提交的哈希值 git log --oneline通过 git log 查看提交历史&#xff0c;找到你要回退到的目标提交的哈希值&#xff08;例如 abc123d&#xff09;。 2. 回退文件到指定提…

如何屏蔽mac电脑更新提醒,禁止系统更新

最烦mac的系统更新提醒了&#xff0c;过几天就是更新弹窗提醒&#xff0c;现在可以直接禁掉了&#xff0c;眼不见心不乱&#xff0c;不然一升级&#xff0c;开发环境全都不能用了&#xff0c;那才是最可怕的&#xff0c;屏蔽的方法也很简单&#xff0c;就是屏蔽mac系统更新的请…

mac m1/m2/m3 pyaudio的安装

google了很多方法&#xff0c;也尝试了 issue68的方法&#xff0c; 但是均失败了&#xff0c;但是问deepseek竟然成功了&#xff0c;下面是deepseek r1给出的方法。在M3 pro芯片上可以成功运行. 安装homebrew /bin/bash -c "$(curl -fsSL https://raw.githubusercontent…

hackmyvm-JO2024

arp-scan -l nmap -sS -v 192.168.222.202 gobuster dir -u http://192.168.222.202 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php -b 301,401,403,404 访问/preferences.php 看一下cookie 解密 TzoxNToiVXNlclByZWZlcmVuY2VzIjoyOntzOjg6Imxhbmd1…

从零开始学习SQL

1.1 MySQL概述 1. 数据管理技术的发展过程 数据库技术是应数据管理任务的需要而产生的 a. 什么是数据管理 ** 对数据进行收集、分类、组织、编码、存储、检索和维护一系列活动的总和 **b. 数据管理技术的发展过程 人工管理阶段&#xff08;20世纪50年代中之前&#xff09;…

输电线路在线监测通信规约,即I1协议

文章目录 概要整体架构流程数据帧格式技术细节 概要 输电线路在线监测系统 transmission lines online monitoring system 监测输电线路设备本体、气象环境、通道状况等信息&#xff0c;定性或定量分析输电线路运行状况的应用系 统。一般包括主站系统、监测装置以及主站系统与…

【AI】Orin NX+ubuntu22.04上移植YoloV11,并使用DeepStream测试成功

【AI】郭老二博文之:AI学习目录汇总 1、烧写系统 新到的开发板,已经烧写好Ubuntu系统,版本为22.04。 如果没有升级到Ubuntu22.04,可以在电脑Ubuntu系统中使用SDKManager来烧写Ubuntu系统,网络情况好的话,也可以直接将CUDA、cuDNN、TensorRT、Deepstream等也安装上。 2…

C++之输入与输出

文章目录 C 输入输出 (I/O) 详解基本 I/O 组件&#xff08;input / output&#xff09;基本输出 (cout)基本输入 (cin)格式化输出文件 I/O字符串流常见 I/O 方法比较错误处理其他保留小数 C 输入输出 (I/O) 详解 C 使用标准库中的 iostream 库来处理输入输出操作。主要包括以下…

流动的梦境:GPT-4o 的自回归图像生成深度解析

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

eBay多账号安全运营技术体系:从环境隔离到智能风控的工程化实践

一、多账号运营风险模型解析 &#xff08;技术化重构关联检测机制&#xff09; 环境指纹维度&#xff1a; 浏览器指纹参数&#xff1a;Canvas/WebGL渲染特征&#xff08;差异度要求≥98%&#xff09; 设备指纹参数&#xff1a;GPU型号/声卡特征&#xff08;识别准确率92%&…

Vue 3 模板引用(Template Refs)详解与实战示例

Vue 3 模板引用&#xff08;Template Refs&#xff09;详解与实战示例 引言 在 Vue 开发中&#xff0c;通常推荐使用 响应式数据 (ref 和 reactive) 进行数据绑定&#xff0c;而不是直接操作 DOM。但是&#xff0c;在某些情况下&#xff0c;我们确实需要访问某个组件或 DOM 元…

《Operating System Concepts》阅读笔记:p495-p511

《Operating System Concepts》学习第 44 天&#xff0c;p495-p511 总结&#xff0c;总计 17 页。 一、技术总结 1.cache (1)定义 A cache is a region of fast memory that holds copies of data. (2)cache 和 buffer 的区别 The difference between a buffer and a cac…

通过Spring Boot集成WebSocket进行消息通信

文章目录 通过Spring Boot集成WebSocket进行消息通信1. 创建 Spring Boot 项目2. 添加 WebSocket 依赖3. 配置 WebSocket4. 创建 WebSocket 处理器5. 创建控制器&#xff08;可选&#xff09;6. 前端页面测试7. 运行项目注意事项 通过Spring Boot集成WebSocket进行消息通信 1.…

rust服务应用开发框架

原文链接:https://i68.ltd/notes/posts/20250313-rust-wasm-fw/ spin 开源开发工具&#xff0c;用于构建和运行由 WebAssembly 提供支持的无服务器应用程序Spin 是一个框架&#xff0c;用于使用 WebAssembly 构建&#xff0c;部署和运行快速&#xff0c;安全和可组合的云端微…

迷茫的一周 2025/3/28

Java篇 在Java中&#xff0c;以下数据类型中,需要内存最多的是(long) - A选项byte&#xff1a;占用1个字节&#xff08;8位&#xff09; - B选项long&#xff1a;占用8个字节&#xff08;64位&#xff09; - C选项Object&#xff1a;Object本身是一个引用&#xff0c;在32位JVM…

Elasticsearch 的搜索功能

Elasticsearch 的搜索功能 建议阅读顺序&#xff1a; Elasticsearch 入门Elasticsearch 搜索&#xff08;本文&#xff09;Elasticsearch 搜索高级Elasticsearch 高级 1. 介绍 使用 Elasticsearch 最终目的是为了实现搜索功能&#xff0c;现在先将文档添加到索引中&#xff0c…

docker镜像拉取失败

hub.docker.com中提供的docker pull命令在服务器拉取镜像时报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) 这个错误通常表明Docker客户…