首页 > 编程语言 >LeetCode-Python-#27 移除元素

LeetCode-Python-#27 移除元素

时间:2023-07-02 09:44:33浏览次数:42  
标签:27 -# val nums int 元素 移除 数列

题目描述

给定一个数列nums和数值val,消除数列nums中与数值 val相同的元素,最终返回新数列的长度;要求:不能开辟空间分配新的数列,必须改变原输入nums数列;并对修改后的nums数列的元素顺序没有要求,可以被修改。

Examples

  1. nums=[3,2,2,3val=3 则返回长度为2;
  2. nums=[0,1,2,2,3,0,4,2]val=2则返回长度为5;

其实这道题目与#26消除重复元素差不多,本题指定了消除的元素;不同点在于:首先要判断val是否一定在nums内,这一点与消除重复元素不同——一定在其中。

参考实现

方式1

class Solution:
    def removeElement(self, nums: List[int], val: int) -> int:
        if val not in nums:
            #如果不存在指定元素,直接返回数组长度
            return len(nums)
        else:
            i = 0
            while i < len(nums):
                #找到指定元素
                if val == nums[i]:
                    #移除指定元素
                    nums.pop(i)
                else:
                    #循环条件 + 1
                    i += 1
            return i

方式2

def removeElement_02(nums: List[int], val: int):
    nums[:] = [n for n in nums if n != val]
    return len(nums)

这里借助推导式实现,简洁多看两遍也能理解;

标签:27,-#,val,nums,int,元素,移除,数列
From: https://www.cnblogs.com/wdh01/p/17472592.html

相关文章

  • update-alternatives 的基本用法
    update-alternatives是Ubuntu的软件多版本管理工具,基本用法为,update-alternatives--install<link><name><path><priority>[--force]例如,我要创建一个符号链接/usr/bin/cmake,它指向实际安装路径/usr/local/bin/cmake,则可以使用如下命令,sudoupdate-alternatives......
  • postgres安装记录-centos
    镜像方式安装:1.下载依赖以及脚本[email protected]:a356a/deploy.git2.执行脚本-postgresImage.sh脚本具体执行:关闭防火墙systemctlstopfirewalldsystemctldisablefirewalld拉取镜像并启动镜像dockerpullpostgres:12-alpine3.16dockerrun--namepostgresDocker12......
  • 背包问题-二进制优化
    Smiling&Weeping----不讨好所有冷漠不辜负所有热爱 #[NOIP1996提高组]砝码称重 ##题目描述 设有$1\mathrm{g}$、$2\mathrm{g}$、$3\mathrm{g}$、$5\mathrm{g}$、$10\mathrm{g}$、$20\mathrm{g}$的砝码各若干枚(其总重$\le......
  • 数据结构和算法-2023.07.01
    数据结构杂记回忆以前的一些零散的知识点杂谈......
  • k8s进阶7-initContainer的场景灵活应用
    一、initContainer工作原理初始化容器是在pod的主容器启动之前要运行的容器,主要是做一些主容器的前置工作,它具有两大特征:1、初始化容器必须运行完成直至结束,若某初始化容器运行失败,那么kubernetes需要重启它直到成功完成;2、初始化容器必须按照定义的顺序执行,当且仅当前一个成功之......
  • Python基础语法--课程笔记
    Smiling&Weeping----很难再爱上下一个春天只守着我的枯木 一等再等保留标识符:1.__*__代表系统定义函数的名字:__new__()  #创建新对象的函数__init__() #创建函数2.“_”在交互式执行中使用,代表计算结果,如......
  • Media Player Classic - BE MPC-BE 1.6.8 2023.7.1
    MediaPlayerClassic-BEMediaPlayerClassic-BE是一个免费的多媒体播放器,是MediaPlayerClassic(MPC)的一个分支。它提供了许多功能和改进,以增强用户体验和播放器的性能。以下是MediaPlayerClassic-BE的一些特点和功能:多种音视频格式支持:它支持许多常见的音频和......
  • 6-26到7-1暑期每周报告2
    这一周依旧是进行大数据技术的学习,通过林子雨老师的b站视频进行学习,但是还是不太懂,而且没有进行实操,因为虚拟机装了之后,硬盘满了,只能等回家加了内存在进行实操,现在离放假大概还有一个星期时间,我的计划是先停下对大数据技术的学习,先进行算法和spring的学习。spring学习:因为之前开......
  • go src - sync.Map
    前言在并发编程中,我们经常会遇到多个goroutine同时操作一个map的情况。如果在这种情况下直接使用普通的map,那么就可能会引发竞态条件,造成数据不一致或者更严重的问题。sync.Map是Go语言中内置的一种并发安全的map,但是他的实现和用法与普通的map完全不同,这篇文章将详细介绍这些区......
  • 什么是 CSR、SSR、SSG、ISR - 渲染模式详解
    本文以React、Vue为例,介绍下主流的渲染模式以及在主流框架中如何实现上述的渲染模式。前置知识介绍看渲染模式之前我们先看下几个主流框架所提供的相关能力,了解的可跳到下个章节。挂载组件到DOM节点这是主流框架最基本的能力,就是将组件渲染到指定的DOM节点上。在React......