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

两种解法解决 LeetCode 27. 移除元素【C++】

移除元素

  • 27. 移除元素
    • 题目:[移除元素](https://leetcode.cn/problems/remove-element/description/)
    • 示例和提示:
    • 解法:
      • 1. 暴力解法
    • 2. 快慢指针

27. 移除元素

题目:移除元素

在这里插入图片描述

示例和提示:

在这里插入图片描述

解法:

1. 暴力解法

//暴力解法:
//实际上就是遍历数组找到需要删除的元素,然后再嵌套一层循环将该元素后面的依次向前覆盖。
class Solution {
public:int removeElement(vector<int>& nums, int val) {//为了不让每次循环都调用size()函数:int size = nums.size();//第一步,遍历目标数组:for(int i = 0; i < size; i++){//找到需要删除元素的位置;if(nums[i] == val){//删除元素从前向后遍历:for(int j = i+1; j < size; j++){nums[j-1] = nums[j];}//这里有一个迭代器失效问题,此时i指向原始数组中被删除元素的下一个位置,外层循环末尾//还会使得i++,没有判断就跳过了这个元素,所以得i--;i--;size--;}}return size;}
};

2. 快慢指针

//快慢指针法:
//很酷很丝滑的解法,快指针勇往无前的遍历,慢指针负责将快指针指向位置的元素复制到自己指向的位置,
//当快指针指向位置的元素需要删除时,慢指针停止赋值,直到快指针再次指向一个不需要删除的元素的位置。class Solution {
public:int removeElement(vector<int>& nums, int val) {int fastPoit = 0;int slowPoit = 0;int size = nums.size();for( ; fastPoit < size; fastPoit++){if(nums[fastPoit] != val){nums[slowPoit] = nums[fastPoit];slowPoit++;}}//slowPoit此时的指向正是新数组末尾的下一个位置,因为slowPoit++//是放在赋值最后执行的,所以刚好也就是新长度:return slowPoit;}
};

😄 创作不易,你的点赞和关注都是对我莫大的鼓励,再次感谢您的观看😄

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

相关文章:

  • Vue + Element UI 前端篇(七):功能组件封装
  • QT QToolBox控件使用详解
  • 数学建模--主成分分析法(PCA)的Python实现(
  • 【数据结构篇】线性表2 —— 栈和队列
  • 万物互联:软件与硬件的协同之道
  • ping: www.baidu.com: Name or service not known 写了DNS还是不行
  • C++中的decltype、std::declval 和 std::decay_t傻傻分不清楚
  • 什么是Ubuntu LTS?与常规版本的区别
  • 如何写一个可以找到工作的简历不至于太烂
  • el-select 使用
  • 思维导图怎么变成ppt?4个思维导图一键生成ppt的方法
  • 3D点云处理:点云投影为2D图像 调平点云(附源码)
  • mysql 查询优化 、索引失效
  • 支付宝pc支付(springboot版),简单配置即可实现支付
  • 【Redis专题】Redis持久化、主从与哨兵架构详解
  • 【vue2第十三章】自定义指令 自定义v-loading指令
  • 数据结构--6.3查找算法(静态、动态)(插值查找)
  • Spring Boot日志基础使用 设置日志级别
  • Playwright for Python:断言
  • websocket--技术文档--spring后台+vue基本使用
  • day01-ES6新特性以及ReactJS入门
  • MySQL5.7慢查询实践
  • MySQL数据库的增删改查(进阶)
  • 韶音骨传导耳机好不好用,韶音的骨传导耳机怎么样
  • Nginx从安装到使用,反向代理,负载均衡
  • freertos之资源管理
  • 1.创建项目(wpf视觉项目)
  • 使用element-ui导航,进入对应的三级页面菜单保持点击状态
  • golang字符串转64位整数
  • 创作纪念日-我的第1024天