当前位置: 首页 > wzjs >正文

人社局网站群建设工作方案seo系统培训

人社局网站群建设工作方案,seo系统培训,做天猫转让网站,wordpress 焦点图及调用代码代码随想录 第一章 数组 27.移除元素 题目: 题目链接:27.移除元素 题目描述: 给你一个数组 nums​ 和一个值 val​,你需要 原地 移除所有数值等于 val​ 的元素。元素的顺序可能发生改变。然后返回 nums​ 中与 val​ 不同的元素…

代码随想录 第一章 数组 27.移除元素

题目:

  • 题目链接:27.移除元素

  • 题目描述:

    给你一个数组 nums​ 和一个值 val​,你需要 原地 移除所有数值等于 val​ 的元素。元素的顺序可能发生改变。然后返回 nums​ 中与 val​ 不同的元素的数量。

    假设 nums​ 中不等于 val​ 的元素数量为 k​,要通过此题,您需要执行以下操作:

    • 更改 nums​ 数组,使 nums​ 的前 k​ 个元素包含不等于 val​ 的元素。nums​ 的其余元素和 nums​ 的大小并不重要。
    • 返回 k​。

一、思想

快慢指针算法的核心思想是使用两个指针以不同的速度遍历数据结构(如链表或数组):

  1. 双指针:使用两个指针,一个快指针,一个慢指针。
  2. 速度差异:快指针移动速度快(如每次两步),慢指针速度慢(如每次一步)。
  3. 相遇条件:通过速度差,快指针最终会追上慢指针或达到特定条件,用于检测循环或找到特定位置。

二、代码

class Solution
{
public:/*** @brief 移除数组中所有指定值的元素(双指针原地修改)* @param nums 输入输出参数-待处理数组,修改后前n个元素为有效元素* @param val 需要移除的目标值* @return int 移除后新数组的长度* * @算法思路 快慢指针法:* 1. 快指针fastIndex扫描全部元素* 2. 慢指针slowIndex记录非val元素的位置* 3. 当遇到非val元素时,将其复制到slowIndex位置并右移* * @时间复杂度 O(n) 只需一次遍历* @空间复杂度 O(1) 原地修改,无额外空间*/int removeElement(vector<int> &nums, int val){int slowIndex = 0; // 新数组的写入指针(最终位置即为新长度)// 快指针遍历整个数组,时间复杂度O(n)for (int fastIndex = 0; fastIndex < nums.size(); ++fastIndex){// 过滤目标值:当元素值不等于val时,执行复制操作if (nums[fastIndex] != val){// 将有效元素复制到新位置,并移动慢指针nums[slowIndex++] = nums[fastIndex];}// 当元素等于val时,快指针继续前进,慢指针保持不动}return slowIndex; // 返回有效数组长度}
};

三、解析

1 算法工作原理分解

1.1 快慢指针的分工

  • 快指针 (fastIndex)

    • 负责遍历整个数组,检查每个元素是否等于目标值 val​。
    • 每次迭代都会向后移动一步。
  • 慢指针 (slowIndex)

    • 负责记录下一个非 val​ 元素应该放置的位置。
    • 只有当快指针找到一个非 val​ 的元素时,慢指针才会移动。

1.2 核心逻辑

  • 过滤非 val元素

    • 当快指针指向的元素 nums[fastIndex]​ 不等于 val​ 时,将该元素复制到慢指针的位置 nums[slowIndex]​,然后慢指针向后移动一步。
  • 跳过 val元素

    • 当快指针指向的元素 nums[fastIndex]​ 等于 val​ 时,快指针继续向后移动,慢指针保持不动。

1.3 终止条件

  • 当快指针遍历完整个数组后,算法结束。
  • 此时,慢指针的值 slowIndex​ 就是数组中非 val​ 元素的个数。

2 关键点说明

2.1 快慢指针的移动规则

  • 快指针

    • 每次迭代都会向后移动一步,无论当前元素是否等于 val​。
  • 慢指针

    • 只有当快指针找到一个非 val​ 的元素时,才会向后移动一步。

2.2 数组的最终状态

  • 数组的前 slowIndex​ 个元素都是非 val​ 的元素。
  • 数组的剩余部分(从 slowIndex​ 到末尾)可能包含任意值,但这些值不会被使用。

四、复杂度分析

  • 时间复杂度O(n)
    快指针需要遍历整个数组一次,最坏情况下需要检查数组中的每个元素(n 为数组长度)。
  • 空间复杂度O(1)
    仅需常数级别的额外空间存储指针变量(slowIndex​ 和 fastIndex​)。

http://www.dtcms.com/wzjs/75368.html

相关文章:

  • 如何通过html做网站google在线代理
  • 微信怎样将网站的内容做网络营销seo优化
  • 如何制作app客户端南宁网站seo外包
  • 学校网站建设如何服务社会网站推广及seo方案
  • 内蒙古城乡和住房建设厅网站今日nba数据帝
  • 做竞价的网站怎么自己做网址
  • 网站建设linux推广论坛有哪些
  • 邵武网站建设wzjseo厦门人才网官网招聘信息网
  • 内蒙古省呼和浩特网站建设seo站长工具综合查询
  • 是做网站的怀孕后搜索引擎优化师工资
  • vs做网站案例网站开发流程的8个步骤
  • 做网站的费用如何写分录网站百度不收录
  • 湖南网站营销优化开发交换友情链接的条件
  • 如何做网站咨询seo网站培训班
  • 信息技术会考做网站网络广告营销方案
  • 公司注册地址费用seo推广培训班
  • 对网站访客做简要分析产品推广网站哪个好
  • 黄酒的电商网页设计网站找竞价托管公司
  • 镇江网站建设介绍服务阿里指数
  • 如何查网站开发环境网络营销公司有哪些
  • 成都营销型网站建设网盘资源大全
  • 做试玩网站简述网络营销的含义
  • 网站群建设意见征集石家庄热搜
  • 天元建设集团有限公司法定代表人seo关键词排优化软件
  • 人民日报今日头条新闻郑州好的seo外包公司
  • 高德vr全景地图windows10优化软件
  • 如何做一个企业的网站seo关键词外包
  • 地方门户网站建设推广方案模板
  • 深圳教育网站设计公司视频营销成功的案例
  • 西城区住房和城乡建设委员会网站网络营销的职能有哪些