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

力扣经典题目之->移除值为val元素的讲解,的实现与讲解

一:题目

博主本文将用指向来形象的表示下标位的移动。 

二:思路

1:两个整形,一个start,一个end,在一开始都 = 0,即这里都指向第一个元素。

2:在查到val之前,查一个,end就赋给start一个,然后再双双+1,即指向下一个元素。

3:当end查到了val的时候,此时此刻,start和end都是指向val的,所以此时我们让start就不变了,让end去向后遍历,找到第一个不是val的值,从这个值开始,只要end指向的值不是val,就覆盖掉start指向的值。覆盖一次,双双向后移动一次,再次判断end然后去覆盖,直到end超出数组范围!

4:最后所有不是val的值都会被放在前面,然后返回start的值即可,他的值就是与val不同的元素的数量。

三:思路的讲解

1:假设数组是以下,val为2。

Q:我们用end去找的时候,为什么不是val,要将end赋给star,并且双双+1?

A1:双双+1是因为要确保end找到val的时候,此时此刻end和start都指向了该val

 A2:end赋给start,是因为在后面有重要作用,要用end指向的非val元素去覆盖start指向的val元素,并且这一步在找到val之前,对数组没有任何的影响

2:遇到val的时候

此时,strat指向val,不再移动,然后让end向后一直遍历,找到第一个不是val的值。用这个值去覆盖start指向的val

即:

3:覆盖完成后,双双向后移动,只要end指向的值不是val就去覆盖掉start

4:最后end会超出范围,即指向2后面的元素,这时候跳出循环

即:

5:此时start的值就是所有非val的元素的个数 

四:代码展示

总结:此题思路理解之后,书写极为简单!

http://www.lryc.cn/news/400484.html

相关文章:

  • pico+unity3d项目配置
  • python条件
  • 华为USG6000V防火墙v1
  • Apache访问机制配置
  • 在word中删除endnote参考文献之间的空行
  • 【详解】Spring Cloud概述
  • 板级调试小助手(3)基于PYNQ的OLED视频显示
  • git批量删除本地包含某字符串的特定分支
  • Android中RecyclerView使用详解(一)
  • 坑3.上传图片(阿里云空间,oss验证)(未验证)
  • 注册登录后上传文件到本地数据库项目
  • 【学习笔记】无人机(UAV)在3GPP系统中的增强支持(十三)-更换无人机控制器
  • react 组件通信 —— 父子传值 【 函数式/类式 】
  • 【SpringBoot】95、SpringBoot中使用MyBatis-Plus实现自动加密存储和查询自动解密
  • [数仓]十二、离线数仓(Atlas元数据管理)
  • 机器学习——决策树(笔记)
  • 翁恺-C语言程序设计-08-1. 求一批整数中出现最多的个位数字
  • ROM修改进阶教程------深度解析小米设备锁机型不解锁bl 刷写特殊类固件的步骤
  • 论文翻译 | LEAST-TO-MOST: 从最少到最多的提示使大型语言模型中的复杂推理成为可能
  • 【区块链 + 智慧政务】都江堰区块链公共服务应用平台 | FISCO BCOS应用案例
  • Python从0到100(三十九):数据提取之正则(文末免费送书)
  • redis redisson(仅供自己参考)
  • 【C语言初阶】探索编程基础:深入理解分支与循环语句的奥秘
  • ERP基础知识
  • C++是否可以使用.获取union、struct中的成员变量的地址
  • 【前端】包管理器:npm、Yarn 和 pnpm 的全面比较
  • C++ 类和对象 赋值运算符重载
  • 【Python实战因果推断】35_双重差分6
  • 【HarmonyOS】关于官方推荐的组件级路由Navigation的心得体会
  • Spring中事件监听器