数组的元素在内存地址中是连续的,不能单独删除数组中的某个元素,只能覆盖

暴力法

两层for循环,一个for循环遍历数组元素 ,第二个for循环更新数组。

// 时间复杂度:O(n^2)
// 空间复杂度:O(1)
class Solution {public:int removeElement(vector<int>& nums, int val) {int size = nums.size();for (int ii = 0; ii < size; ii++) {if (nums[i] == val) { // 发现需要移除的元素,就将数组集体向前移动一位for (int jj = ii + 1; jj < size; jj++) {nums[jj - 1] = nums[jj];}ii--; // 因为下表i以后的数值都向前移动了一位,所以i也向前移动一位size--; // 此时数组的大小-1}}return size;}
};

双指针法

双指针法(快慢指针法):「通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。」

class Solution{public:int removeElement(vector<int>& nums,int val){int slowIndex=0;int size=nums.size();for(int fastIdex=0;fastIdex<size;fastIdex++){if(nums[fastIdex]!=val){ //快指针发现所指元素不是要移除的元素,就把指向的值赋值给慢指针,然后一起向前走nums[slowIndex++]=nums[fastIdex];}}return slowIndex;//返回的索引是多少就说明有多少元素,比如1234,返回索引4 说明有4个元素}
};

移除元素--双指针法相关推荐

  1. Leetcode Day1---双指针法 || 27移除元素、977. 有序数组的平方、209. 长度最小的子数组

    学习内容: LC27 移除元素 个人思路: 猛的一看感觉很简单,感觉一个for就可以解决.仔细查看之后发现暗藏玄机. 首先可以直接判断当 nums[i] == val时,删除list当前索引的元素. ...

  2. 刻意练习:LeetCode实战 -- Task03. 移除元素

    背景 本篇图文是LSGO软件技术团队组织的 第二期基础算法(Leetcode)刻意练习训练营 的打卡任务.本期训练营采用分类别练习的模式,即选择了五个知识点(数组.链表.字符串.树.贪心算法),每个知 ...

  3. 数组-删除排序数组中的重复项(双指针法)

    题意: 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件 ...

  4. 卷进大厂系列之LeetCode刷题笔记:移除元素(简单)

    学算法,刷力扣,加油卷,进大厂! 题目描述 力扣题目链接 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度. 不要使用额外的数组空间, ...

  5. LeetCode 27.移除元素 思考分析

    题目 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度. 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数 ...

  6. 双指针法(leetcode分类解题,C++代码详细注释)

    双指针法 前言 167.两数之和 II - 输入有序数组 88.合并两个有序数组 142. 环形链表 II 633.平方数之和 680. 验证回文字符串 Ⅱ 27. 移除元素 344. 反转字符串 剑 ...

  7. LeetCode--27. 移除元素(双指针)

    移除元素(C, Python) 1. 题目描述 2. 题目分析 3. C语言实现 3.1 双指针排序法 3.2 双指针乱序法 4. Python实现 1. 题目描述 难度:简单 2. 题目分析 该题和 ...

  8. Day01.二分查找、移除元素

    Day01.二分查找.移除元素 0704.二分查找 题目链接:0704.二分查找 思路:二分查找,仅对有序数组有效.每次需要数组的中间值,与目标值比较大小,如果中间值比目标值大,说明目标值位置在lef ...

  9. 代码随想录01 | 704二分查找和27移除元素

    目录 一 .二分查找 1 二分查找 2 搜索插入位置 3  在排序数组中查找元素的第一个和最后一个位置 二.移除元素 一 .二分查找 1 二分查找 704 二分查找https://leetcode.c ...

最新文章

  1. C++ 学习之旅(6)——循环loop
  2. Codeforces Round #731 (Div. 3) G. How Many Paths? dfs + 拓扑 + 思维
  3. 985博士妈妈辅导女儿作业被气哭:博士父母带娃真是太难了...
  4. (转)深入分析 Java I/O 的工作机制
  5. Error: Cannot create file “D:xampp\xampp-controlin“.拒绝访问。
  6. 从头来之【iOS及历史版本特性介绍】
  7. RabbitMQ入门(2)--工作队列
  8. Unix文件系统的层次结构
  9. SNN系列|神经元模型篇(2) Izhikevich
  10. P5144 蜈蚣 (线性DP)
  11. 计算机一级win7win10,Win7/Win8.1升级Win10出现黑屏/蓝屏怎么办
  12. CRISPR-Cas9实验常见问题及解决方案
  13. 公链分析报告(2)--EOS
  14. 如何在HTML做个按钮
  15. Android学习--RecyclerView的使用
  16. 医院选HIS,开源医疗OpenHIS就够了
  17. 苹果手机绕 id,勤试成功。把经过分享给大家!
  18. 致我成为社畜的第一年
  19. matlab 断层 体三维重建,利用Matlab实现原木CT断层图像的三维重建
  20. 2020电工(初级)考试试题及电工(初级)模拟考试题库

热门文章

  1. hdu 3047 Zjnu Stadium(并查集)
  2. [知识图谱构建] 一.Neo4j图数据库安装初识及药材供应图谱实例
  3. [笔试题目] 腾讯2015年9月基础研究笔试题
  4. [Python学习] 专题五.列表基础知识 二维list排序、获取下标和处理txt文本实例
  5. iOS之深入解析对象isa的底层原理
  6. 【数据结构与算法】之深入解析“字符串相乘”的求解思路与算法示例
  7. RxSwift之UI控件UICollectionView扩展的使用
  8. Selenium Xpath元素无法定位 NoSuchElementException: Message: no such element: Unable to locate element
  9. Flask-RESTful 快速入门
  10. 数据结构和算法 —— 图