首页 > 其他分享 >移除元素

移除元素

时间:2024-10-08 22:11:19浏览次数:1  
标签:right val int 检测 元素 移除 指针

采用双指针法。
双指针法容易出错的地方在于确定好两个指针的作用,用来保存的指针不要包含未经判定的元素

  • 1、想明白两个指针的作用是什么。刚开始写时让两个指针都去检测是否等于val,判定语句比较多,还容易导致跳过某些元素。其实实际上只要确定:由左指针来保证它经过的元素都是不等于val的元素,右指针来保证对整个序列进行检测,保证不遗漏。
  • 2、因此,当右指针检测到等于val的值时,马上right+1;当检测到不等于val的值时,马上保存到左指针位置
    代码如下
class Solution {
public:
    int removeElement(vector<int>& nums, int val) {
        int n = nums.size()-1;
        int left = 0;
        int right = 0;
		//右指针检测完这个序列后结束循环
        while(right<=n){
            if(nums[right] == val){
                right++;
            }
            else{
	//每当检测到不等于val的值时立刻交换。确保left中的值都是不等于val的值。
	//因为最开始left和right的位置是相同的,如果是一个不等于val的数原地交换不会改变结果,一旦出现一个不等于val的数right指针将一直在left指针前
                nums[left] = nums[right];
                left++;
                right++;
            }
        }
    return left;//left不包含未经判定的元素,只有确定有不等于val的元素left才会移动,因此直接返回
        }
};

标签:right,val,int,检测,元素,移除,指针
From: https://www.cnblogs.com/gqzz/p/18453165

相关文章

  • 网络爬虫自动化Selenium元素获取
    网络爬虫技术是自动化处理网页数据的重要工具,而Selenium则是一种常用的浏览器自动化框架,能够模拟用户行为来获取网页中的数据。为了有效地利用Selenium进行网络爬虫,必须掌握各种元素的获取方法。选择合适的元素定位器是成功操作网页的关键之一。本文将深入介绍几种常用的Se......
  • 代码随想录算法训练营day3|● 203.移除链表元素 ● 707.设计链表 ● 206.反转链表
    学习资料:https://programmercarl.com/链表理论基础.html#链表的类型可设置虚拟头结点dummy_head链表最后指向Null一个节点包含值和索引学习记录:203.移除链表元素(基本ListNode(),cur.next,cur.next.val)点击查看代码#Definitionforsingly-linkedlist.#classListNod......
  • CSS元素可见性
    CSS中的visibility属性用来设置元素是否可见,您可以将该属性与JavaScript一起使用,来创建非常复杂的菜单或网页布局,比如在网页中做一些测试题时您可以使用visibility属性将题目的答案或解析隐藏起来,需要时再将其展示出来。visibility属性的可选值如下:值描述visible......
  • Leetcode 540. 有序数组中的单一元素
    1.题目基本信息1.1.题目描述给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次。请你找出并返回只出现一次的那个数。你设计的解决方案必须满足O(logn)时间复杂度和O(1)空间复杂度。1.2.题目地址https://leetcode.cn/problems/single-ele......
  • 代码随想录算法训练营day7|704.二分查找、27.移除元素、977.有序数组的平方
    学习资料:https://programmercarl.com/数组理论基础.html理解:双指针可以同时获取一个数组的两个位置的值二分查找:根据区间范围(左闭右闭、左闭右开)来判断左右指针比较方式刷题记录:704.二分查找(左闭右闭则<=,左右指针,middle=left+(right-left)//2,因为考虑了等号情况所以下一步l......
  • [vue] vue3封装clip动画, 实现元素的国度效果
    import{nextTick}from"vue";//数据类型functiongetDataType(){returnObject.prototype.toString.call(arguments[0]).slice(8,-1).toLowerCase();}/****@param{*}els单元素节点或者元素节点集合*@param{*}fn数据变更的函数,通过调用函数导致......
  • RPA跨流程复用元素技巧|实在RPA研究
    为什么要跨流程复用元素在RPA操作中,元素至关重要,因为自动化的本质就是模拟人类对元素的操作。基本上,每个流程都会包含若干个元素。对于同时维护多个流程的用户而言,相似的流程包,甚至是同一个元素。例如电商用户,不同流程都需操作相同电商平台的登录。因此,多流程、多用户复用元......
  • 完全零基础 轻松学Python:基本语法元素和函数
    一、基本语法元素01缩进02注释03保留字04变量05数据类型06赋值07函数二、几个常见函数01input()02print()03eval()04type()05id()06dir()07help()-TheEnd -......
  • 203_移除链表元素
    203_移除链表元素【问题描述】给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val==val的节点,并返回新的头节点。示例一:输入:head=[1,2,6,3,4,5,6],val=6输出:[1,2,3,4,5]示例二:输入:head=[],val=1输出:[]示例三:输入:head=[7,7,7......
  • 【leetcode】169.多数元素
    boyer-moore算法最简单理解方法:假设你在投票选人如果你和候选人(利益)相同,你就会给他投一票(count+1),如果不同,你就会踩他一下(count-1)当候选人票数为0(count=0)时,就换一个候选人,但因为和你利益一样的人占比超过了一半不论换多少次,最后留下来的都一定是个和你(利益)相同的人。代码:......