leetcode(27)移除数组中等于某个值的元素

移除数组中等于某个值的元素

class Solution {
    public int removeElement(int[] nums, int val) {
        int len = nums.length;
        if(len==0){
            return 0;
        }
        int j=0;
        for(int i=0;i<len;++i){
            if(nums[i]!=val){
                nums[j++]=nums[i];
            }
        }
        return j;
    }
}

 第二种方法:(如果相等的话,把重复的元素的位置赋值为最后一个元素的值,然后总数组的长度减一)

class Solution {
    public int removeElement(int[] nums, int val) {
        int len = nums.length;
        if(len==0){
            return 0;
        }
        int i = 0;
        while(i<len){
            if(nums[i]==val){
                --len;
                if(i!=len){
                    nums[i] = nums[len]; 
                }
            }else{
                ++i;
            }
        }
        return len;
    }
}

 

posted @ 2019-07-15 19:50  海平面下的我们  阅读(170)  评论(0编辑  收藏  举报