题目
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。
不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。
元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。
原文地址:https://leetcode-cn.com/problems/remove-element/
思路 双指针法
实现过程
import java.util.Arrays;
public class 移除元素 {
public static void main(String[] args) {
int array [] = {1,3,4,4,5,4,5};
int i = removeElement(array, 4);
System.out.println(i);
}
public static int removeElement(int[] nums,int val){
int slowindex = 0;
for (int fastindex = 0; fastindex <nums.length ; fastindex++) {
if (nums[fastindex] != val){
nums[slowindex++] = nums[fastindex];
}
}
System.out.println(Arrays.toString(nums));
return slowindex;
}
}
参考 https://mp.weixin.qq.com/s?__biz=MzUxNjY5NTYxNA==&mid=2247488272&idx=2&sn=27008ae48890e5d3734a82350305447b&scene=21#wechat_redirect