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

python代码练习:双指针法

题目一:移除元素

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。

不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组

元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

from typing import List
class Solution:def removeElement(cls, nums: List[int], val: int) -> int:fast = slow = 0while fast<len(nums):if nums[fast] != val:nums[slow]=nums[fast]fast=fast+1slow=slow+1else:fast=fast+1return slowif __name__ == '__main__':s=Solution()s.removeElement(nums=[1,2,3,4,2,3,4],val=2)

题目二:删除有序数组中的重复项

给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。

class Solution:def removeDuplicates(self, nums: List[int]) -> int:slow=0fast=1while fast<len(nums):if nums[slow]==nums[fast]:fast=fast+1else:slow=slow+1nums[slow]=nums[fast]fast=fast+1return slow+1

题目三:删除有序数组中的重复项 II

给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。

from typing import List
class Solution:def removeDuplicates(self, nums: List[int]) -> int:slow=0fast=1count=1while fast<len(nums):if nums[slow] == nums[fast]:count=count+1if count<=2:slow=slow+1nums[slow]=nums[fast]fast=fast+1else:fast = fast + 1elif nums[slow] != nums[fast] :count=1slow = slow+1nums[slow] = nums[fast]fast = fast+1print(nums)print(slow+1)return slow+1if __name__ == '__main__':s=Solution()s.removeDuplicates(nums=[1,1,1,2,2,2,3])

优化:

from typing import List
class Solution:def removeDuplicates(self, nums: List[int]) -> int:slow=2fast=2while fast<len(nums):if nums[fast] != nums[slow-2]:nums[slow]=nums[fast]slow=slow+1fast=fast+1else:fast=fast+1return slowif __name__ == '__main__':s=Solution()s.removeDuplicates(nums=[1,1,1,2,2,2,3])

题目四:移动零

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

请注意 ,必须在不复制数组的情况下原地对数组进行操作。

from typing import List
class Solution:def moveZeroes(self, nums: List[int]) -> None:slow=0for fast in range(len(nums)):if nums[fast] != 0:nums[slow] = nums[fast]slow=slow+1for item in  range(slow,len(nums)):nums[item]=0return numss=Solution()
print(s.moveZeroes(nums=[0,1,0,3,4,7]))# 不为0的先移到前面,后面的都补为0

题目五:比较含退格的字符串

给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true 。# 代表退格字符。

注意:如果对空文本输入退格字符,文本继续为空。

class Solution:def getString(self,sc):bz=[]for item in sc:if item != '#':bz.append(item)elif len(bz)>0:bz.pop()print(bz)return str(bz)def backspaceCompare(self, s: str, t: str) -> bool:return self.getString(sc=s) == self.getString(sc=t)# 使用栈,等于#时就出栈(需要注意空栈时不能在出栈),不等于#时则入栈。

题目六:有序数组的平方

给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。

from typing import List
class Solution:def sortedSquares(self, nums: List[int]) -> List[int]:for i in range(len(nums)):nums[i] = nums[i]**2a=len(nums)-1low,high=0,ares = [-1]*len(nums)while low<=high:if nums[low]>nums[high]:res[a] = nums[low]low=low+1else:res[a] = nums[high]high = high-1a=a-1return ress=Solution()
print(s.sortedSquares(nums=[-6,-4,-3,0,1,2,3,5]))
# 左右哦两端开始遍历,用一个列表来存放遍历结果。
# 原列表的low比high大,就把该数据放到res末尾
# 原列表low比high小,就把high放到res前面

相关文章:

python代码练习:双指针法

题目一&#xff1a;移除元素 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不…...

C++系列十七:访问控制符

访问权限控制符 一、public访问权限二、private访问权限三、protected访问权限 在C中&#xff0c;访问权限控制符用于限制类成员的访问权限&#xff0c;主要包括public、private和protected三种。这些访问权限控制符用于控制类成员的访问级别&#xff0c;从而保证数据的封装性和…...

postgresql 最简主从配置

实验目的 配置一个最简的主从环境&#xff0c;了解基本的主从配置。 环境参数 操作系统CentOS Linux release 7.9.2009 (Core)数据库版本PostgreSQL 10.23主库端口15431备库端口15432 因为只是做实验&#xff0c;所以主备库放在同一台机器上&#xff0c;仅通过端口区分主备…...

ubuntu 安装 anaconda

ubuntu 安装 anaconda 下载 wget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh安装 bash Anaconda3-2023.09-0-Linux-x86_64.sh2.1 回车继续 2.2 许可协议 输入 q 退出阅读许可协议 2.3 输入 yes 接受 许可协议 2.4 设置 anaconda 安装位置 如不需…...

DOM 被劫持

文档对象模型&#xff08;DOM&#xff09;充当着 HTML 和 JavaScript 之间的接口&#xff0c;搭建起静态内容与动态交互之间的桥梁&#xff0c;对现代 Web 开发而言&#xff0c;DOM 的作用不可或缺。 然而&#xff0c;DOM 也有一个致命的陷阱 —— DOM 劫持。DOM 劫持是指当 H…...

PIG框架学习2——资源服务器的配置详解

一、前言 1、pig资源服务器的配置 Spring Security oauth2相关的依赖是在pigx-common-security模块中引入的&#xff0c;其他模块需要进行token鉴权的&#xff0c;需要在微服务中引入pigx-common-security模块的依赖&#xff0c;从而间接引入相关的Spring security oauth2依赖…...

vue+element ui实现图片上传并拖拽进行图片排序

用到的技术栈&#xff1a; vue2element Uivue-dragging 如何使用&#xff1a; 第一步: 安装 npm install awe-dnd --save第二步: 引入 main.js 文件 // 引入组件 import VueDND from awe-dnd // 添加至全局 Vue.use(VueDND)具体项目代码 <el-form-item label"封面…...

国产服务器 BIOS下组建RADI不同RAID卡-超详细

国产服务器 长城 组建Raid的方法 说明 大多数国产服务器通用型服务器进入BIOS的都是按DEL键。 9361RAID卡组建方法 在服务器启动过程中&#xff0c;按下DEL键进入BIOS界面。 进入设备管理器&#xff0c;选择AVAGO MegaRAID页签。 3. 进入RAID卡设备&#xff0c;选择Main Me…...

UE4 4.21-4.27使用编辑器蓝图EditorBlueprint方法

在UE4 4.21中&#xff0c;编辑器蓝图&#xff08;Editor Blueprint&#xff09;是一个强大的工具&#xff0c;允许开发者扩展和自定义Unreal编辑器的功能。通过编辑器蓝图&#xff0c;我们可以创建自定义的工具和功能&#xff0c;以优化开发流程。 本教程将指导您如何在UE4 4.…...

105、Zero-1-to-3: Zero-shot One Image to 3D Object

简介 官网  使用合成数据集来学习相对摄像机视点的控制&#xff0c;这允许在指定的摄像机变换下生成相同对象的新图像&#xff0c;用于从单个图像进行三维重建的任务。 实现流程 输入图像 x ∈ R H W 3 x \in \R^{H \times W \times 3} x∈RHW3&#xff0c;所需视点的相…...

scala 安装和创建项目

Scala&#xff0c;一种可随您扩展的编程语言&#xff1a;从小型脚本到大型多平台应用程序。Scala不是Java的扩展&#xff0c;但它完全可以与Java互操作。在编译时&#xff0c;Scala文件将转换为Java字节码并在JVM&#xff08;Java虚拟机&#xff09;上运行。Scala被设计成面向对…...

Python办公自动化 – 自动化文本翻译和Oracle数据库操作

Python办公自动化 – 自动化文本翻译和Oracle数据库操作 以下是往期的文章目录&#xff0c;需要可以查看哦。 Python办公自动化 – Excel和Word的操作运用 Python办公自动化 – Python发送电子邮件和Outlook的集成 Python办公自动化 – 对PDF文档和PPT文档的处理 Python办公自…...

如何在Win10电脑接收苹果手机日程提醒呢?

有很多小伙伴手机使用的是iPhone苹果手机&#xff0c;但办公电脑使用的win10系统的电脑&#xff0c;这时候如果想要在win10电脑上同步接收苹果手机上设置的日程提醒&#xff0c;该怎么操作呢&#xff1f;如何在win10电脑接收苹果手机日程提醒呢&#xff1f; 如果你设置的日程提…...

227.【2023年华为OD机试真题(C卷)】小明找位置(二分查找-JavaPythonC++JS实现)

🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-小明找位置二.解题思路三.题解代码Python题解代…...

【现代密码学】笔记3.4-3.7--构造安全加密方案、CPA安全、CCA安全 《introduction to modern cryphtography》

【现代密码学】笔记3.4-3.7--构造安全加密方案、CPA安全、CCA安全 《introduction to modern cryphtography》 写在最前面私钥加密与伪随机性 第二部分流加密与CPA多重加密 CPA安全加密方案CPA安全实验、预言机访问&#xff08;oracle access&#xff09; 操作模式伪随机函数PR…...

服务器带宽有什么用? 带宽不足怎么办?

服务器带宽是指服务器能够接收和传输数据的速率&#xff0c;通常以每秒传输的数据量来衡量。它是支持特定应用服务器网络和因特网&#xff08;Internet&#xff09;访问的单一网络线路&#xff0c;对网络速度、响应时间、应用程序处理速度等方面都有影响。 服务器带宽有什么作…...

Alphafold2蛋白质结构预测AI工作站配置推荐

AlphaFold2计算特点 蛋白质三维结构预测是一项计算量非常巨大的任务&#xff0c;科学家多年的探索研究&#xff0c;形成了X射线晶体学法、核磁共振法、冷冻电镜等。 2021年底&#xff0c;谷歌的DeepMind团队的采用人工智能方法的AlphaFold2算法在生物界引起了极大的轰动…...

如何让ArcGIS Pro启动显示空白页面

刚接触ArcGIS Pro的你是否会觉得在操作上有那么一些不习惯&#xff0c;从一开始软件启动就发现和ArcGIS差距很大&#xff1a;丰富的欢迎页面&#xff0c;加上默认加载的地图让你眼花缭乱&#xff0c;这里教你如何去掉这些繁杂的内容&#xff0c;还你一个干净的启动页面。 跳过…...

超市账单管理系统产品数据新增Servlet实现

超市账单管理系统产品数据新增Servlet实现 package com.test.controller; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import ja…...

计算机组成原理之计算机硬件发展和计算机系统的组成

学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持&#xff0c;想组团高效学习… 想写博客但无从下手&#xff0c;急需…...

SpringBoot整合MQTT实战:从零到一构建物联网消息通信

1. 为什么选择SpringBoot整合MQTT&#xff1f; 物联网项目开发中&#xff0c;设备与服务器的通信就像快递员送货上门。MQTT协议就是这个快递员&#xff0c;而SpringBoot就是你家门口的智能快递柜。两者结合能让设备数据像包裹一样准时送达&#xff0c;还不会丢件。 我去年做过一…...

【Python学习】海龟绘图(Turtle)

目录 一、教程概述 二、环境准备 2.1 安装Python&#xff08;已安装可跳过&#xff09; 2.2 启动海龟绘图环境 方式1&#xff1a;使用Python IDLE&#xff08;自带编辑器&#xff09; 方式2&#xff1a;使用命令行运行 三、海龟绘图核心概念 四、基础操作&#xff08;必…...

TFLint Docker终极指南:在容器中轻松运行Terraform代码检查

TFLint Docker终极指南&#xff1a;在容器中轻松运行Terraform代码检查 【免费下载链接】tflint A Pluggable Terraform Linter 项目地址: https://gitcode.com/gh_mirrors/tf/tflint TFLint是一个可插拔的Terraform代码检查工具&#xff0c;帮助开发者发现Terraform配置…...

AI编程革命:重塑程序员未来(一)

AI编程时代到来AI不会让程序员消失&#xff0c;但会深刻重塑这个职业。当代码生成变得轻而易举&#xff0c;程序员 的角色将从“代码编写者”升级为“问题解决者”与“架构设计师”。未来的核心竞争力&#xff0c;在于 理解复杂业务、设计系统逻辑&#xff0c;并用人类独有的创…...

G-Helper:重塑华硕硬件控制体验的轻量级开源解决方案

G-Helper&#xff1a;重塑华硕硬件控制体验的轻量级开源解决方案 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Sca…...

双倍效率:在快马平台中融合chatgpt实现智能代码生成与即时调试

最近在开发过程中&#xff0c;我发现了一个能显著提升效率的工作方式&#xff1a;将ChatGPT的智能生成能力与InsCode(快马)平台的即时调试环境结合起来。这种组合让我在代码编写、问题排查和逻辑优化上都节省了大量时间&#xff0c;今天就来分享一下具体的使用体验。 自然语言…...

低显存福音:实测Neeshck轻量化工具,16G显卡流畅跑Z-Image模型

低显存福音&#xff1a;实测Neeshck轻量化工具&#xff0c;16G显卡流畅跑Z-Image模型 1. 轻量化方案的诞生背景 1.1 大模型与小显存的矛盾 Z-Image作为国产文生图模型的代表&#xff0c;其强大的生成能力有目共睹。但原生部署对显存的高要求&#xff08;通常需要20GB以上&am…...

Jetson Nano/Orin上离线语音识别的实战踩坑:从Whisper到Sherpa-onnx,我最终选了它

Jetson Nano/Orin离线语音识别实战&#xff1a;从Whisper到Sherpa-onnx的技术选型与避坑指南 在边缘计算设备上实现高质量的离线语音识别&#xff08;ASR&#xff09;一直是开发者面临的挑战。Jetson系列作为NVIDIA推出的边缘AI计算平台&#xff0c;凭借其强大的GPU加速能力和低…...

基于jqktrader的自动化交易解决方案:技术架构与实战应用

基于jqktrader的自动化交易解决方案&#xff1a;技术架构与实战应用 【免费下载链接】jqktrader 同花顺自动程序化交易 项目地址: https://gitcode.com/gh_mirrors/jq/jqktrader 自动化交易技术正逐步改变传统量化投资的运作模式&#xff0c;jqktrader作为一款基于Pytho…...

零下20度实测:国产SysMax PCAN FD在寒区标定中的稳定性与兼容性全记录

零下20度极限挑战&#xff1a;SysMax PCAN FD在寒区汽车电子标定中的实战全解析 当清晨的内蒙古满洲里气温骤降至-20℃&#xff0c;大多数电子设备早已进入"冬眠"状态&#xff0c;而我们的汽车电子标定工作却必须继续。在这个被称为"中国冷极"的地区&#…...