leetcode_27. Remove Element 不允许创建新列表,直接在列表原地删除指定元素

题目:

Given an array and a value, remove all instances of that value in place and return the new length.

Do not allocate extra space for another array, you must do this in place with constant memory.

The order of elements can be changed. It doesn't matter what you leave beyond the new length.

Example:
Given input array nums = [3,2,2,3]val = 3

Your function should return length = 2, with the first two elements of nums being 2.



题意:

给定一个列表,和一个指定的元素,写一个函数,要求不允许创建新的列表,直接删除指定的元素,并返回删除元素后的列表长度,在原始列表中该长度对应的列表为删除元素后的列表内容。


代码:

class Solution(object):
    def removeElement(self, nums, val):
        """
        :type nums: List[int]
        :type val: int
        :rtype: int
        """
        
        indx = 0       #代表非val的元素下标
        for i in range(len(nums)) :       #遍历nums,如果不是val,则将其放在indx下标中,否则,如果为val,则继续遍历
            if nums[i] != val :
                nums[indx] = nums[i]
                indx += 1
        return indx


笔记:

刚开始不懂题目的意思,没有对nums中非val元素进行移动,只统计了非val元素个数,并返回,然后就报错了。

后来发现需要把非val元素移到前面,并返回非val元素个数,然后就通过了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值