欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【算法题】移除元素

程序员文章站 2022-03-15 20:33:14
...

一、题目

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

二、思路

  • 使用双指针。指针 j 用来遍历数组中的每一个元素,用指针 i 将不等于 val 的数组元素保存在原数组中。
  • 输入参数非空判断。如果 nums.length() == 0 ,则直接返回 0 即可。

三、代码

public class Q027_removeElement {
	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];
				i++;
			}
		}
		return i;
	}
}

四、结果

【算法题】移除元素

相关标签: 算法