移除元素--双指针法
数组的元素在内存地址中是连续的,不能单独删除数组中的某个元素,只能覆盖
暴力法
两层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个元素}
};
移除元素--双指针法相关推荐
- Leetcode Day1---双指针法 || 27移除元素、977. 有序数组的平方、209. 长度最小的子数组
学习内容: LC27 移除元素 个人思路: 猛的一看感觉很简单,感觉一个for就可以解决.仔细查看之后发现暗藏玄机. 首先可以直接判断当 nums[i] == val时,删除list当前索引的元素. ...
- 刻意练习:LeetCode实战 -- Task03. 移除元素
背景 本篇图文是LSGO软件技术团队组织的 第二期基础算法(Leetcode)刻意练习训练营 的打卡任务.本期训练营采用分类别练习的模式,即选择了五个知识点(数组.链表.字符串.树.贪心算法),每个知 ...
- 数组-删除排序数组中的重复项(双指针法)
题意: 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件 ...
- 卷进大厂系列之LeetCode刷题笔记:移除元素(简单)
学算法,刷力扣,加油卷,进大厂! 题目描述 力扣题目链接 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度. 不要使用额外的数组空间, ...
- LeetCode 27.移除元素 思考分析
题目 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度. 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数 ...
- 双指针法(leetcode分类解题,C++代码详细注释)
双指针法 前言 167.两数之和 II - 输入有序数组 88.合并两个有序数组 142. 环形链表 II 633.平方数之和 680. 验证回文字符串 Ⅱ 27. 移除元素 344. 反转字符串 剑 ...
- LeetCode--27. 移除元素(双指针)
移除元素(C, Python) 1. 题目描述 2. 题目分析 3. C语言实现 3.1 双指针排序法 3.2 双指针乱序法 4. Python实现 1. 题目描述 难度:简单 2. 题目分析 该题和 ...
- Day01.二分查找、移除元素
Day01.二分查找.移除元素 0704.二分查找 题目链接:0704.二分查找 思路:二分查找,仅对有序数组有效.每次需要数组的中间值,与目标值比较大小,如果中间值比目标值大,说明目标值位置在lef ...
- 代码随想录01 | 704二分查找和27移除元素
目录 一 .二分查找 1 二分查找 2 搜索插入位置 3 在排序数组中查找元素的第一个和最后一个位置 二.移除元素 一 .二分查找 1 二分查找 704 二分查找https://leetcode.c ...
最新文章
- C++ 学习之旅(6)——循环loop
- Codeforces Round #731 (Div. 3) G. How Many Paths? dfs + 拓扑 + 思维
- 985博士妈妈辅导女儿作业被气哭:博士父母带娃真是太难了...
- (转)深入分析 Java I/O 的工作机制
- Error: Cannot create file “D:xampp\xampp-controlin“.拒绝访问。
- 从头来之【iOS及历史版本特性介绍】
- RabbitMQ入门(2)--工作队列
- Unix文件系统的层次结构
- SNN系列|神经元模型篇(2) Izhikevich
- P5144 蜈蚣 (线性DP)
- 计算机一级win7win10,Win7/Win8.1升级Win10出现黑屏/蓝屏怎么办
- CRISPR-Cas9实验常见问题及解决方案
- 公链分析报告(2)--EOS
- 如何在HTML做个按钮
- Android学习--RecyclerView的使用
- 医院选HIS,开源医疗OpenHIS就够了
- 苹果手机绕 id,勤试成功。把经过分享给大家!
- 致我成为社畜的第一年
- matlab 断层 体三维重建,利用Matlab实现原木CT断层图像的三维重建
- 2020电工(初级)考试试题及电工(初级)模拟考试题库
热门文章
- hdu 3047 Zjnu Stadium(并查集)
- [知识图谱构建] 一.Neo4j图数据库安装初识及药材供应图谱实例
- [笔试题目] 腾讯2015年9月基础研究笔试题
- [Python学习] 专题五.列表基础知识 二维list排序、获取下标和处理txt文本实例
- iOS之深入解析对象isa的底层原理
- 【数据结构与算法】之深入解析“字符串相乘”的求解思路与算法示例
- RxSwift之UI控件UICollectionView扩展的使用
- Selenium Xpath元素无法定位 NoSuchElementException: Message: no such element: Unable to locate element
- Flask-RESTful 快速入门
- 数据结构和算法 —— 图