我是靠谱客的博主 任性云朵,最近开发中收集的这篇文章主要介绍python实现leetcode-第27题-移除元素,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

class Solution:
    def removeElement(self, nums, val):
        """
        :type nums: List[int]
        :type val: int
        :rtype: int
        """
        i = j = 0
        while j < len(nums):
            if nums[j] == val:
                j = j+1
            else:
                nums[i]=nums[j]
                i = i+1
                j = j+1
        return len(nums[0:i])

注意:

python中切片的用法

return的用法

len的意义

官方题解:

方法一:双指针

方法二:双指针 —— 当要删除的元素很少时

思路

现在考虑数组包含很少的要删除的元素的情况。例如,num=[1,2,3,5,4],Val=4。之前的算法会对前四个元素做不必要的复制操作。另一个例子是 num=[4,1,2,3,5],Val=4,似乎没有必要将 [1,2,3,5] 这几个元素左移一步,因为问题描述中提到元素的顺序可以更改。

算法

当我们遇到 nums[i] = val 时,我们可以将当前元素与最后一个元素进行交换,并释放最后一个元素。这实际上使数组的大小减少了 1。

请注意,被交换的最后一个元素可能是您想要移除的值。但是不要担心,在下一次迭代中,我们仍然会检查这个元素。

最后

以上就是任性云朵为你收集整理的python实现leetcode-第27题-移除元素的全部内容,希望文章能够帮你解决python实现leetcode-第27题-移除元素所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部