zoukankan      html  css  js  c++  java
  • 【leetcode】27: 移除元素

    这道题我看了解答感觉不是很对,因为并没有实现原地对数组进行修改。但还是记录一下,这种解题方法还是很值得学习的。

    题目如下:

    解答的方法如下:

    class Solution:
        def removeElement(self, nums: List[int], val: int) -> int:
            #原地移除元素之后,再返回当前的length
            n = len(nums)
            left = 0 # 左指针从0开始,指向下一个将要赋值的位置
            # 右指针从0开始,指向当前将要处理的元素
            for right in range(0, n):
                # 右指针指向的元素不等于val,是输出数组的元素
                # 将右指针指向的元素复制到左指针位置,然后将左右指针同时右移
                if nums[right] != val:
                    nums[left] = nums[right]
                    left += 1
                # 右指针指向的元素等于val,不在输出数组里,左指针不动,右指针右移一位
            print(nums)
            return left

    我们可以看到这个解答方法,整个数组的长度并不会发生变化,没有做到原地修改。我怀疑这个python的解答方法是错误的

  • 相关阅读:
    day23 GUI
    day17JDK5.0新特性与正则表达式
    day12-day15集合
    day11线程
    day10-JavaAPI
    day09面向对象-
    day08面向对象-内部类、异常
    day06面向对象
    Idea导入Eclipse中的Maven Web(SSM)
    java给图片添加水印
  • 原文地址:https://www.cnblogs.com/geeksongs/p/15422286.html
Copyright © 2011-2022 走看看