27 移除数组中含有目标值的元素,返回数组长度

2018-12-16  本文已影响0人  wangyou2550

思路

和26一样,遍历数组,然后判断数组元素的值是否与目标不相等,不相等,给nums[j]==nums[i];j++,最后return j;

如果元素相等于目标值的话,nums[i]=nums[--n]

public int removeElement(int[] nums, int val) {
    int i = 0;
    int n = nums.length;
    while (i < n) {
        if (nums[i] == val) {
            nums[i] = nums[n - 1];
            // reduce array size by one
            n--;
        } else {
            i++;
        }
return n;
}

for实现上面的思路

class Solution {
    public int removeElement(int[] nums, int val) {
        int pivot = nums.length - 1;
        for (int i = 0; i <= pivot; i++) 
            if (nums[i] == val) nums[i--] = nums[pivot--];
        return pivot < 0 ? 0 : pivot + 1;
    }
}
    }
    return n;
}
上一篇下一篇

猜你喜欢

热点阅读