美文网首页
27 移除数组中含有目标值的元素,返回数组长度

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

作者: wangyou2550 | 来源:发表于2018-12-16 10:55 被阅读0次

    思路

    和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;
    }
    

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/dpptkqtx.html