leetcode 27.移除元素---双指针

27.移除元素—双指针

class Solution(object):
    def removeElement(self, nums, val):
        n = len(nums)
        left = 0
        for right in range(n):
            if nums[right] != val:
                nums[left] = nums[right]
                left += 1
        
        return left

本题采用双指针方法。
本题最简解法,思路并不难,主要是体会其中的极简代码写法。
left按兵不动,right从0开始向前游走,遇到nums[right] != val,就令nums[left] = nums[right] left += 1,最后一步left已然+1,所以直接返回left即可,无需再+1.

时间: O(n)
空间: O(1)

你可能感兴趣的:(算法与数据结构,leetcode,算法,python)