leetcode 27.移除元素(python版)

需求

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。
不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。
元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。
说明:
为什么返回数值是整数,但输出的答案是数组呢?
请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。
你可以想象内部操作如下:
// nums 是以“引用”方式传递的。也就是说,不对实参作任何拷贝
int len = removeElement(nums, val);
// 在函数里修改输入数组对于调用者是可见的。
// 根据你的函数返回的长度, 它会打印出数组中 该长度范围内 的所有元素。
for (int i = 0; i < len; i++) {
print(nums[i]);
}
示例 1:
输入:nums = [3,2,2,3], val = 3
输出:2, nums = [2,2]
解释:函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。
示例 2:
输入:nums = [0,1,2,2,3,0,4,2], val = 2
输出:5, nums = [0,1,3,0,4]
解释:函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。注意这五个元素可为任意顺序。你不需要考虑数组中超出新长度后面的元素。

分析

定义两个指针,一个指针 i 用于遍历数组,一个指针 j 用于指向可以放置不等于 val 的元素的位置。
初始化 j 和 i 都为 0,然后遍历数组:
如果 nums[i] 等于 val,不做任何操作,继续遍历下一个元素。
如果 nums[i] 不等于 val,将其值赋给 nums[j],然后将 j 的值加 1,遍历下一个元素。
最后,返回 j 的值,即为移除 val 后数组的新长度

代码

class Solution:def remove_element(self, nums, val):j = 0for i in range(len(nums)):if nums[i] != val:nums[j] = nums[i]j += 1return jif __name__ == '__main__':call=Solution()nums=[1,2,3,3,5,6]val=3print(call.remove_element(nums, val))

运行结果

在这里插入图片描述

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

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

相关文章

如何多好一个FMEA——SunFMEA软件

尽管FMEA的理念和流程相对简单&#xff0c;但在实际操作中&#xff0c;许多企业发现FMEA的实施并不容易&#xff0c;往往无法达到预期的效果。今天SunFMEA软件和大家一起 SunFMEA软件 首先&#xff0c;FMEA的实施需要跨部门、跨领域的团队合作。然而&#xff0c;在很多企业中&a…

C# Newtonsoft.Json解析json笔记

最近在做数据传报的工作&#xff0c;有解析一个巨复杂的json的需求&#xff0c;所以又学了下 Newtonsoft.Json&#xff0c;感觉挺方便的。 参考思路如下&#xff1a; 1、对象的格式为 名称:值。其中&#xff0c;值可以为对象&#xff08;大括号&#xff09;&#xff0c;也可以…

RX-8564 LC实时时钟模块

.内置 32.768 kHz 晶体单元(频率精度调整完毕) .接口类型&#xff1a;I2C-Bus 接口 (400 kHz) .工作电压范围&#xff1a;1.8 V ~ 5.5 V .计时&#xff08;保持&#xff09;电压范围 &#xff1a;1.0 V ~ 5.5 V / -20 ˚C ~70 ˚C .低待机电流 &#xff1a;275 nA / 3.0…

Acrel-2000MG微电网能量管理系统在工商业储能行业中的应用

一、概述: 在新型电力系统中新能源装机容量逐年提高&#xff0c;但是新能源比如光伏发电、风力发电是不稳定的能源&#xff0c;所以要维持电网稳定&#xff0c;促进新能源发电的消纳&#xff0c;储能将成为至关重要的一环&#xff0c;是分布式光伏、风电等新能源消纳以及电网安…

超强预测模型:二次分解-组合预测

1 长时间序列预测模型Informer Informer是一种基于自注意力机制的序列预测模型&#xff0c;专门用于时间序列预测任务,在时间序列预测领域取得了显著的性能Informer主要特点&#xff1a; 注意力机制与多层编码器-解码器结构 Informer模型引入了全局自注意力和局部自注意力机…

大模型技术关于硬件和操作系统的要求

引言 在人工智能的快速发展中,大模型技术逐渐成为了研究和应用的热点。本文将探讨在大模型技术中,硬件和操作系统的重要性以及具体的要求。 硬件与操作系统要求 一、硬件与软件的平衡 在大模型微调技术的落地应用中,硬件和软件同等重要。用户需要根据具体的应用场景和需求…

Linux操作系统权限相关问题(一站式速通权限)

一、sudo命令 sudo yum install -y sl sudo命令的作用 不切换用户&#xff0c;就想让普通用户以root的身份&#xff0c;执行对应的指令 输入密码时&#xff0c;输入的是自己普通用户的密码&#xff0c;而不是root的密码&#xff01;&#xff01;&#xff01; sudo可以进行…

移动端深度编辑产品技术解决方案

视频编辑已经成为企业宣传、教育、娱乐等多个领域的重要工具。美摄科技凭借其深厚的技术积累和对市场需求的敏锐洞察&#xff0c;开发出业界领先的移动端深度编辑产品&#xff0c;为企业提供高效、专业的视频编辑解决方案。 美摄科技移动端深度编辑产品方案&#xff0c;基于多…

【Vue】2-5、Vue 过滤器

过滤器&#xff08;Filters&#xff09;是 vue 为开发者提供的功能&#xff0c;用于文本的格式化。 【Vue2 可用&#xff0c;Vue3 已经弃用】 过滤器可以用在两个地方&#xff1a; 插值表达式 v-bind 属性绑定 过滤器应该被添加在 JavaScript 表达式的尾部&#xff0c;由“管…

小程序脚本语言——SJS 语法参考

SJS&#xff08;safe/subset javascript&#xff09; 是小程序的一套脚本语言&#xff0c;结合 tyml&#xff0c;可以构建出页面的结构。 注意事项 SJS 的运行环境和其他 JavaScript 代码是隔离的&#xff0c;SJS 中不能调用其他 JavaScript 文件中定义的函数&#xff0c;也不…

那些年与指针的情仇(二)---二级指针指针与数组的那点事函数指针

关注小庄 顿顿解馋(&#xff61;&#xff65;∀&#xff65;)&#xff89;&#xff9e; 欢迎回到我们的大型纪录片《那些年与指针的爱恨情仇》&#xff0c;在本篇博客中我们将继续了解指针的小秘密&#xff1a;二级指针&#xff0c;指针与数组的关系以及函数指针。请放心食用&a…

【AI量化分析】小明在量化中使用交叉验证原理深度分析解读

进行交叉验证好处 提高模型的泛化能力&#xff1a;通过将数据集分成多个部分并使用其中的一部分数据进行模型训练&#xff0c;然后使用另一部分数据对模型进行测试&#xff0c;可以确保模型在未见过的数据上表现良好。这样可以降低模型过拟合或欠拟合的风险&#xff0c;提高模…

浅谈MySQL3种日志

浅谈MySQL3种日志 日志是mysql数据库的重要组成部分&#xff0c;记录着数据库运行期间各种状态信息。mysql日志主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。作为开发&#xff0c;我们重点需要关注的是二进制日志(binlog)和事务日志(包括redo log和un…

Qt|QPushButton控件讲解

前提 按钮分为了四种状态&#xff1a;常态、聚焦、按下、禁用 前一段时间更新了MFC框架下CButton的自绘。因为MFC框架下的按钮限制性很高&#xff0c;所以只能由自绘实现各种风格&#xff0c;但是QT框架完美的解决了这个问题&#xff0c;我们只需要了解如何调用&#xff0c;就…

springboot 个人网盘系统 java web网盘文件分享系统 web在线云盘

springboot 个人网盘系统 java web网盘文件分享系统 web在线云盘 开发工具&#xff1a;Eclipse/idea Java开发环境&#xff1a;JDK8.0 Web服务器:Tomcate9.0。 数据库&#xff1a;MySQL数据库。 技术框架&#xff1a;Struts2SpringHibernate和JSP 有详细的源码&#xff0…

MySQL 函数参考手册

目录 MySQL 字符串函数 MySQL 数值函数 MySQL 日期函数 MySQL 高级函数 MySQL 字符串函数 函数描述ASCII返回特定字符的 ASCII 值CHAR_LENGTH返回字符串的长度&#xff08;以字符为单位&#xff09;CHARACTER_LENGTH返回字符串的长度&#xff08;以字符为单位&#xff09;…

【机器学习前置知识】隐变量

隐变量又称潜变量&#xff0c;顾名思义就是隐藏着的随机变量&#xff0c;它不能通过观测来得到&#xff0c;或者说它产生的过程是不可观测的&#xff0c;然而它却可以在潜移默化中影响可观测变量。 我们用抛硬币为例来解释什么是隐变量。假设有 A 、 B 、 C A、B、C A、B、C …

使用nginx对视频、音频、图片等静态资源网址,加token签权

目前很多静态资源,都可以无权限验证,进行访问或转发,对有价值的资源进行签权,限制转发无法在代码中实现拦截,我们可以使用nginx对视频、音频、图片等静态资源网址,加token签权 如: http://192.168.1.22/123.mp3 http://192.168.1.22/123.m3u8 http://192.168.1.22/1…

十一、C++核心编程(1)内存分区模型

本阶段主要针对面向对象程技术做详细讲解&#xff0c;探讨C中的核心和精髓。 一、内存分区模型 1、C程序在执行时&#xff0c;将内存大方向划分为4个区域&#xff1a; 代码区:存放函数体的二进制代码&#xff0c;由操作系统进行管理的全局区:存放全局变量和静态变量以及常量…

qt5-入门

参考&#xff1a; qt学习指南 Qt5和Qt6的区别-CSDN博客 Qt 学习之路_w3cschool Qt教程&#xff0c;Qt5编程入门教程&#xff08;非常详细&#xff09; 本地环境&#xff1a; win10专业版&#xff0c;64位 技术选择 Qt5力推QML界面编程。QML类似HTML&#xff0c;可以借助CSS进…