View on GitHub wznonstop

从排序数组中删除重复项

给定 nums = [0,0,1,1,1,2,2,3,3,4], 函数应该返回新的长度 5, 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。 你不需要考虑数组中超出新长度后面的元素。

/**
 * @param {number[]} nums
 * @return {number}
 */
var removeDuplicates = function(nums) {
    var len = nums.length,index = 1;
    if(len===0){
        return 0;
    }
    // nums.sort((a,b) => (a-b));
    for (var i =1 ; i < len; i++) {
        if (nums[index] == nums[index-1]) {
            nums.splice(index, 1);
        } else {
            index ++;
        }
    }
    return nums.length;
};

最开始没注意到是排序数组,做了下排序,突然联想到,如果让一个数组所有元素反转顺序排列,可以这样实现:

nums.sort(() => (1)); 

或者:

nums.reverse();