数组元素移除问题

一.数组理论基础

  1. 移除数组元素的底层逻辑:移位、覆盖
  2. 函数实现:del、pop()、remove()等 

二.暴力算法(两重循环)

     0.  参考思路原题:来自Leetcode题库27题

          27. 移除元素

  1.  算法思路(可参考我在Leetcode上写的题解)
    新手向——python暴力求解移除元素问题https://leetcode.cn/problems/remove-element/solution/by-zi-shan-long-wang-nr8n/
  2. 详细代码
    class Solution(object):
        def removeElement(self, nums, val):
            """
            :type nums: List[int]
            :type val: int
            :rtype: int
            """
            n=len(nums)
            # count记录val的个数
            # i为用于指示位置的循环变量
            count=0
            i=0
    
            #暴力求解,二重循环
            #第一重循环遍历数组元素
            while (i
  3. 时空复杂度:时间复杂度:O(n^2)         空间复杂度:O(1)

 三.双指针算法

     0.  参考思路原题:来自Leetcode题库26题

        26. 删除有序数组中的重复项

  1. 算法思路:一个for循环+快慢两个指针来代替暴力解法中的双for循环,其中快指针用于寻找新数组的元素 (新数组就是不含有重复元素的数组),需跟随for循环遍历原数组中全部元素;慢指针用于指向更新新数组下标的位置(更新条件为快指针所指元素是否在慢指针前的切片数组中),作为返回值输出
  2. 代码实现:
class Solution(object):
    def removeDuplicates(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        # 初始化快慢指针
        fast=slow=0
        # 进入循环
        while fast

四.相关题目推荐

283. 移动零

844. 比较含退格的字符串

977. 有序数组的平方

你可能感兴趣的:(数组方法,python,数据结构)