移除元素 面试题 算法面试题 简单算法 数据结构 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度 LeetCode

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

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

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

  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 ;
    }
public static int removeDuplicates(int[] nums ,int val) {
        int n = nums.length;
        int i = 0;
        while (i<n){
            if(nums[i]==val){
                nums[i]=nums[n-1];
                n--;
            }else {
                i++;
            }

        }
        return i ;

    }

 

おすすめ

転載: blog.csdn.net/yu1xue1fei/article/details/113849353