题目描述

解法一

对数组去重求数组长度,没有必要

/**
 * @param {number[]} nums
 * @return {number}
 */
var removeDuplicates = function(nums) {
    for(let i = 0; i < nums.length; i++) {
        if(nums.indexOf(nums[i]) != nums.lastIndexOf(nums[i])) {
            nums.splice(i, 1)
            i--
        }
    }
    return nums.length
};

解法二

双指针:

双指针的方法初看不能理解,其实按照最原始的解法,创建一个新的数组,当遇到旧数组的指针与当前数值指针值不一致时,赋值给新的数组。

双指针的方法是巧妙的用一个数组代替了两个数组赋值的方式。

/**
 * @param {number[]} nums
 * @return {number}
 */
var removeDuplicates = function(nums) {
    if (nums.length === 0) {
        return 0;
    }
    let j = 0;
    for (let i = 0; i < nums.length; i++) {
        if (nums[i] !== nums[j]) {
            j++;
            nums[j] = nums[i];
        }
    }
    return j + 1;
};

最新文章

  1. ios webview自适应实际内容高度4种方法
  2. 表设置了自增后往里面插入不自增的id时的处理方法
  3. VMware克隆虚拟机,克隆机网卡启动不了解决方案
  4. 小项目特供 贪吃蛇游戏(基于C语言)
  5. iframe自动适应高度
  6. Exchange Server简介与搭建
  7. python - PipeMapRed.waitOutputThreads(): subprocess failed with code 1
  8. 【转载】ASP.NET获取路径的方法
  9. 使用log4j无法输出日志
  10. Matlab: 作图
  11. 使用java实现面向对象-File I/O
  12. phalcon——Paginator分页
  13. Web服务器(Apache)与Servlet容器(Tomcat)
  14. 设为首页/加入收藏JS代码
  15. Spring MVC运行流程
  16. .NET Core 微服务实例
  17. PS调出唯美冷色情侣婚纱写真照
  18. RN 实战 &amp; React Native 实战
  19. doT.js模板和pagination分页应用
  20. Centos7下python3安装pip-9.0.1

热门文章

  1. JavaScript图形实例:正多边形
  2. nodejs,webpack安装以及初步运用
  3. c++中比较好用的“黑科技”
  4. 为什么Fun函数能够执行
  5. LoadRunner回放脚本时,显示浏览器的设置
  6. 火狐中添加selenium IDE
  7. 编程练习 将一个字符串中的空格替换为 &quot;%20&quot;
  8. Day7 - E - Strange Way to Express Integers POJ - 2891
  9. 爬虫(十六):Scrapy框架(三) Spider Middleware、Item Pipeline
  10. (五)微信小程序的跳转