首页 > 编程语言 >day01 代码随想录算法训练营 27. 移除元素

day01 代码随想录算法训练营 27. 移除元素

时间:2023-12-29 14:22:06浏览次数:39  
标签:27 nums 随想录 len https 移除 指针

题目:

27. 移除元素

感悟:

  • 用快慢指针。
  • 本题是要原地删除。
  • 而删除这个行为在真实的计算机的数组里,是覆盖。
  • 所以,就用两个指针,(人)
  • 一个跑的快,一个跑的慢。他们身上带了个对讲机。
  • 跑的快的那个人负责检测后面的数字符合要求不,比如,要不等于3的,遇到一个2,告诉跑的慢的说2符合要求。遇到一个3,告诉跑的慢的说3不符合要求。
  • 跑的慢的那个人负责写入数据。接收到数据就写入。
  • 最后都执行完了,返回慢指针那个位置就是新数组的长度,。

记忆点:

  • 快慢指针,
  • 想象修铁路的两个工人。用个对讲机传递。

难点:

  • 理解删除是覆盖。这种思想。
  • size 是len(nums)-1 因为要取到最后一个
  • while <= 也是要取到最后一个。
  • 当然也可以写成len(nums),while就要改成<
  • 保持一致就可以。

 

代码示例:

class Solution:
    def removeElement(self, nums: List[int], val: int) -> int:
        fast = 0 
        slow = 0
        size = len(nums) - 1
        while fast <= size:
            # 对讲机赋值
            if nums[fast] != val:
                nums[slow] = nums[fast]
                slow +=1
            fast+=1
        return slow

通过截图:

资料:

题目链接:https://leetcode.cn/problems/remove-element/

文章讲解:https://programmercarl.com/0027.%E7%A7%BB%E9%99%A4%E5%85%83%E7%B4%A0.html

视频讲解:https://www.bilibili.com/video/BV12A4y1Z7LP

标签:27,nums,随想录,len,https,移除,指针
From: https://www.cnblogs.com/liqi175/p/17934793.html

相关文章

  • macOS Big Sur 11.7.10 (20G1427) 正式版发布 ISO、PKG、DMG、IPSW 下载
    macOSBigSur11.7.10(20G1427)正式版ISO、PKG、DMG、IPSW下载本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。另外也支持在Windows和Linux中创建可引导介质。2023年9月12日,Apple为macOS和......
  • macOS Big Sur 11.7.10 (20G1427) Boot ISO 原版可引导镜像
    macOSBigSur11.7.10(20G1427)BootISO原版可引导镜像本站下载的macOS软件包,既可以拖拽到Applications(应用程序)下直接安装,也可以制作启动U盘安装,或者在虚拟机中启动安装。另外也支持在Windows和Linux中创建可引导介质。2023年9月12日,Apple为macOS和iOS等旧......
  • test1227
    冒泡排序题意:给定\(a_1,a_2,...,a_n\)和\(m\)个三元组\((l_i,r_i,s_i)\)。每个三元组对应如下函数,修改\(\{a_n\}\)中的元素并返回一个布尔值。defbubble(l,r,s):foriinrange(s,n+1):#s<=i<=nifl>a[i]:l,a[i]=a[i],lret......
  • 代码随想录算法训练营第十六天 |104.二叉树的最大深度,559.n叉树的最大深度,111.二叉树
    一、104.二叉树的最大深度题目链接:LeetCode104.二叉树的最大深度学习:思路:分别求左子树和右子树的高度,返回给根结点,加1之后是根结点的深度,这是后序遍历的思路二、559.n叉树的最大深度题目链接:LeetCode559.N叉树的最大深度学习前:思路:后序遍历。分别所有孩子结点的深......
  • 代码随想录day 02 双指针 滑动窗口 螺旋矩阵
    有序数组的平方题目如下:如果是可以使用O(nlogn)或以上复杂度的算法,本题可以简单的先平方一遍,然后使用排序算法就可以了但是要求使用O(n)复杂度的算法,那么我首先想到的是昨天的快慢指针类似的想法:我想先平方一次数组,然后从中间开始排序,如下但是运行之后发现从中间开始进行相邻元......
  • Ios苹果开发人员已从app应用程序移除怎么恢复
    Hello亲爱的朋友们大家好!我是咕噜的铁蛋!我经常与各种开发者和用户交流,探讨关于苹果设备和应用的问题。最近,我发现许多开发人员都遇到了一个问题:他们的应用程序被苹果从AppStore中移除了。这对于开发者来说无疑是一个巨大的打击,因为他们花费了大量的时间和精力来开发这些应用程序,并......
  • OI练习记录 - 27/12/2023
    早安......
  • ARCHICAD 27:塑造未来的建筑设计神话
    ARCHICAD27是一款全球领先的建筑设计软件,它为建筑师提供了一个全面、高效且直观的设计环境,帮助他们实现创新和高效的建筑设计。点击获取ARCHICAD27 首先,ARCHICAD27具备强大的三维建模功能,使得建筑师可以以更加直观和精确的方式进行建筑设计。通过使用三维模型,用户可以更好......
  • 12月27日总结
    1、业务背景由于业务流程的复杂性,用户往往只具备部分功能的权限,导致在操作自开发程序时出现权限问题。例如前台限制了用户对销售订单的修改,而自开发功能中又涉及单据修改,此时一味限制权限,则无法正常使用功能。2、使用RFC跳过权限2.1、实现原理将被权限限制的逻辑,封装成RFC函数......
  • day01 代码随想录算法训练营 704. 二分查找
    题目:leetcode704.二分查找 感悟:困扰我多年的二分查找对于边界的判断,我终于理解了。难点:难点1:定边界rightright=len(nums)还是len(nums)-1 难点2:while循环whileleft<right还是left<=right 难点3:mid取值mid=right-1还是mid=right  结论:1.自己确定......