移除与指定元素相同的元素

移除与指定元素相同的元素

 问题

给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。不需要考虑数组中超出新长度后面的元素。

示例 1:

给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。 不需要考虑数组中超出新长度后面的元素。

示例 2:

给定 nums = [0,1,2,2,3,0,4,2], val = 2,函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。注意这五个元素可为任意顺序。不需要考虑数组中超出新长度后面的元素。

 算法

保留两个指针 i 和 j,其中 i 是慢指针,j 是快指针。

当 nums[j] 与给定的值相等时,递增 j 以跳过该元素。只要 nums[j] = val,就复制 nums[j] 到 nums[i] 并同时递增两个索引。重复这一过程,直到 j 到达数组的末尾,该数组的新长度为 i。

编码

class Solution {
    public int removeElement(int[] nums, int val) {

        if(nums.length==0) return 0;

        int i = 0;

        for(int j = 0;j<nums.length;j++){
            if(nums[j]!=val){
                nums[i++] = nums[j];
            }
        }

        return i;
    }
}

原文地址:https://www.cnblogs.com/liyizhu/p/10485214.html

时间: 2024-08-01 02:44:31

移除与指定元素相同的元素的相关文章

LeetCode:Range Sum Query - Immutable - 数组指定区间内的元素和

1.题目名称 Range Sum Query(数组指定区间内的元素和) 2.题目地址 https://leetcode.com/problems/range-sum-query-immutable/ 3.题目内容 英文:Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive. 中文:给定一个数组nums,求出索引i和j之间元素的和,i一定是小于或等于j

[ jquery 过滤器 find(expr|obj|ele) ] 此方法用于在选择器的基础之上搜索所有与指定表达式匹配的元素,这个函数是找出正在处理的元素的后代元素的好方法

此方法用于在选择器的基础之上搜索所有与指定表达式匹配的元素,这个函数是找出正在处理的元素的后代元素的好方法 此方法可以算作是与children()方法相对应的一种方法... 实例: <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content='this is my page'> <meta http-equ

[ jquery 文档处理 wrapInner(htm|element|fnl) ] 此方法用于把所有匹配的元素的子元素(包括文本节点)使用指定的 HTML 元素来包裹

此方法用于把所有匹配的元素的子元素(包括文本节点)使用指定的 HTML 元素来包裹 将每一个匹配的元素的子内容(包括文本节点)用一个HTML结构包裹起来 这个函数的原理是检查提供的第一个元素(它是由所提供的HTML标记代码动态生成的),并在它的代码结构中找到最上层的祖先元素--这个祖先元素就是包装元素 html HTML标记代码字符串,用于动态生成元素并包装目标元素 element 用于包装目标元素的DOM元素 fn 生成包裹结构的一个函数 实例: <html lang='zh-cn'> &l

js指定分隔符连接数组元素join()

指定分隔符连接数组元素join() join()方法用于把数组中的所有元素放入一个字符串.元素是通过指定的分隔符进行分隔的. 语法: arrayObject.join(分隔符) 参数说明: 注意:返回一个字符串,该字符串把数组中的各个元素串起来,用<分隔符>置于元素与元素之间.这个方法不影响数组原本的内容. 我们使用join()方法,将数组的所有元素放入一个字符串中,代码如下: <script type="text/javascript"> var myarr

[ jquery 过滤器 filter(expr|obj|ele|fn) ] 筛选出与指定表达式匹配的元素集合,这个方法用于缩小匹配的范围,用逗号分隔多个表达式

筛选出与指定表达式匹配的元素集合,这个方法用于缩小匹配的范围,用逗号分隔多个表达式 当参数是函数时,函数里面的参数解释如下: 一个函数用来作为测试元素的集合.它接受一个参数index,这是元素在jQuery集合的索引.在函数, this指的是当前的DOM元素 实例:<!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equ

[ jquery 选择器 :nth-of-type() ] 选取指定类型(p)父元素下的第几个子元素

选取指定类型(p)父元素下的第几个子元素: 实例: <!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content='this is my page'> <meta http-equiv='keywords' content='keyword1,keyword2,ke

[ jquery 选择器 :nth-last-of-type() ] 选取指定(p)父元素下的从后向前数的指定第一个子元素(无关目标元素在父元素中所处的位置)

选取指定(p)父元素下的从后向前数的指定第一个子元素(无关目标元素在父元素中所处的位置): 实例: <!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content='this is my page'> <meta http-equiv='keywords' conte

jquery简单原则器(匹配除了指定选择器之外的元素 selector 表示选择器)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>简单选择器</title> &

在java 中 指定一个int类型的数组,给一定元素,将元素从小到大进行排序.

class Demo{ public static void main(String[] args){ //要求:指定一个int类型的数组,给一定元素,将元素从小到大进行排序 //初始化一个数组 int[] arr = {7,2,5,12,6,9}; //选择排序:效率太低比较的次数太多 for (int i = 0; i<arr.length;i++){ for(int j = 1;j<arr.length;j++){ if(arr[j-1] > arr[j]){ int temp =