leedcode 移除元素

自己写的:

class Solution:  # 1 2 2 3 3 4
    def removeElement(self, nums, val):
        numms_len = len(nums)
        if numms_len == 0:
            return numms_len
        i = 0
        while i < numms_len:
            if nums[i] == val:
                del nums[i]
                numms_len -= 1
            else:
                i += 1
        return numms_len

gpt的双指针法:

class Solution:
    def removeElement(self, nums, val):
        # 如果数组为空,直接返回长度为0
        if not nums:
            return 0

        # 初始化新长度为0
        new_length = 0

        # 遍历数组
        for i in range(len(nums)):
            # 如果当前元素不等于val
            if nums[i] != val:
                # 将不等于val的元素移到数组的前面
                # 注意这里使用新长度的索引,实现了原地修改
                nums[new_length] = nums[i]
                # 更新新长度
                new_length += 1

        # 返回新长度,即为移除val后的数组长度
        return new_length

 

posted @ 2024-01-22 09:58  Junior_bond  阅读(7)  评论(0)    收藏  举报