首页 > 其他分享 >力扣-移除元素

力扣-移除元素

时间:2023-08-16 16:38:24浏览次数:32  
标签:val nums int 元素 力扣 数组 移除 长度

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。

不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组

元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

 

说明:

为什么返回数值是整数,但输出的答案是数组呢?

请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。

你可以想象内部操作如下:

// nums 是以“引用”方式传递的。也就是说,不对实参作任何拷贝
int len = removeElement(nums, val);

// 在函数里修改输入数组对于调用者是可见的。
// 根据你的函数返回的长度, 它会打印出数组中 该长度范围内 的所有元素。
for (int i = 0; i < len; i++) {
    print(nums[i]);
}

 

示例 1:

输入:nums = [3,2,2,3], val = 3
输出:2, nums = [2,2]
解释:函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。

示例 2:

5
0
1
3
0

 

提示:

  • 0 <= nums.length <= 100
  • 0 <= nums[i] <= 50
  • 0 <= val <= 100
public int removeElement(int[] nums, int val) {
    int i = 0;
    for (int j = 0; j < nums.length; j++) {
        if (val != nums[j]) {
            // 如果当前元素不等于目标值
            nums[i++] = nums[j]; // 将当前元素移动到前面
        }
    }
    return i; // 返回新数组的长度
}

标签:val,nums,int,元素,力扣,数组,移除,长度
From: https://blog.51cto.com/u_16199760/7110062

相关文章

  • 第 358 场周赛 - 力扣(LeetCode)
    第358场周赛-力扣(LeetCode)2815.数组中的最大数对和-力扣(LeetCode)双for遍历即可classSolution{public:intmaxSum(vector<int>&nums){autore=[](intx){intma=0;while(x){if(x%10>ma)......
  • 704. 二分查找、27. 移除元素
    704.二分查找、27.移除元素704.二分查找力扣题目链接(opensnewwindow)给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。示例1:输入:nums=[-1,0,3,5,9,12],target=9输出:4......
  • aboslute(绝对定位的元素)居中方法
    1.使用绝对定位元素自身属性进行居中设置position:absolute;bottom:16px;//放置在底部//设置居中的关键属性right:0;left:0;margin:0auto;该方法主要使用left:0和right:0对dom元素进行拉扯,因此会导致属性值为auto的边距被拉伸,使该元素的宽度撑满整个父级该方法也......
  • 代码随想录算法训练营第十三天|单调数列:滑动窗口最大值(力扣239.)、优先级队列:前k个高
    单调数列:滑动窗口最大值(力扣239.)给定滑动窗口的范围,求每个滑动窗口范围内的最大值使用单调队列实现对于最大值数字前面的数字不存入数列,对于最大值数字后面的数字存入数列中单调队列中数字的大小呈递减顺序pop(value):如果窗口移除的元素等于单调队列的队口元素,则pop;否则什......
  • 力扣---833. 字符串中的查找与替换
    你会得到一个字符串 s (索引从0开始),你必须对它执行 k 个替换操作。替换操作以三个长度均为 k 的并行数组给出:indices, sources,  targets。要完成第 i 个替换操作:检查 子字符串  sources[i] 是否出现在 原字符串 s 的索引 indices[i] 处。如果没有出......
  • 代码随想录算法训练营第十一天|力扣20.有效的括号、力扣1047.删除字符串中所有相邻重
    有效的括号(力扣20.)括号匹配时使用栈解决的经典问题题意其实就像我们在写代码的过程中,要求括号的顺序是一样的有左括号,那么在对应位置则必须有右括号第一种情况:已经遍历完了字符串,但是栈不为空,说明有相应的左括号没有右括号来匹配,所以returnfalse第二种情况:遍历字......
  • flex属性解决子元素宽度被压缩问题
    问题如上图所示,A及B的父盒子是C。其中C和B都用到了flex布局,目的是使文字水平对齐。css代码//A及B的父盒子.cur-in-stan{color:red;height:37px;font-size:14px;font-weight:700;display:flex;align-items:center;margin-righ......
  • 力扣- 删除有序数组中的重复项
    给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过:更改......
  • C# 获取网页上指定的元素
    直接上代码//usingSystem;//usingSystem.Net.Http;//usingSystem.Threading.Tasks;//usingHtmlAgilityPack;//usingNewtonsoft.Json;//classProgram//{//staticasyncTaskMain(string[]args)//{//usingvarhttpClient=newHttpClient();......
  • 内存受限下找出亿级整数集合中的不重复元素
    在大数据环境下,我们常常需要处理数量极其庞大的数据集,但由于内存大小的限制,无法直接加载到内存中进行操作。这时就需要设计适合内存受限环境的算法,来解决问题。本文将以在内存不足的情况下,找出亿级规模整数集合中的不重复元素为例,探讨一种基于BloomFilter的数据结构的解决方......