26. Remove Duplicates from Sorted Array

一个排序数组,移除重复的项,返回新的长度。
不可以使用额外的数组空间,空间复杂度为O(1)。

解析:

  • 不可以声明新的空间,就得在原有数组上修改。
  • 很容易想到把数组当前项和下一项比较,相等的话就把后面那项删掉
  • 下面第二段运行速度会比较快,是比较两项如果不相等,直接将下一项储存

(The following English translation may not be right -.-)

analyze:

  • Compare the current item of array with the next item, and delete the next item if they are equal ( the first piece of code below )
  • Stored then next item if they are not equal ( the second piece of code below, it run faster then the first )
/**
 * @param {number[]} nums
 * @return {number}
 */
var removeDuplicates = function(nums) {
    var i = 0
    var len = nums.length
    while(i < len) {
        if(nums[i] == nums[i+1]) {
            nums.splice(i+1, 1)
            len--
        }else {
            i++
        }
    }
    return len
};
var removeDuplicates = function(nums) {
    let uniqueI = 0;
    for (var i = 0; i < nums.length; i++) {
        if (nums[uniqueI] != nums[i]) {
            uniqueI++;
            nums[uniqueI] = nums[i];
        }
    }

    return uniqueI + 1;
};
``
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 12,151评论 0 10
  • “有些时候,你怀念从前日子。可天真离开时,你却没说一个字。你只是挥一挥手,像扔掉废纸,说是人生必经的事。 ...
    Y小姐的碎碎念阅读 1,826评论 0 1
  • 家庭关系需要经营,经营一词可以用在很多地方,经营人脉,经营生意,经营店面。有的人可以把自己的事业经营得风生水...
    bce7122d370b阅读 3,882评论 0 0
  • 每年的8月,是葡萄丰收的季节,晶莹剔透,散发蜜香 ,吃了齿颊留香。
    徐立的风景Lhl阅读 773评论 0 1