博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面试题(10)之 leetcode-26
阅读量:5285 次
发布时间:2019-06-14

本文共 765 字,大约阅读时间需要 2 分钟。

题目描述

 

解法一

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

/** * @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;};

 

转载于:https://www.cnblogs.com/houfee/p/11104118.html

你可能感兴趣的文章
HOJ-1005 Fast Food(动态规划)
查看>>
jQuery 杂项方法
查看>>
系出名门Android(4) - 活动(Activity), 服务(Service), 广播(Broadcast), 广播接收 器(BroadcastReceiver)...
查看>>
Dynamics CRM Microsoft SQL Server 指定的数据库具有更高的版本
查看>>
FasfDFS整合Java实现文件上传下载
查看>>
love2d教程5--摄相机1视角跟随玩家
查看>>
用Hadoop构建电影推荐系统
查看>>
Linux命令1——a
查看>>
紫书 悲剧文本(链表)
查看>>
[读码时间] 弹出层效果
查看>>
session退出页面
查看>>
telnet登录路由器启动服务的shell脚本
查看>>
HSRP 详解
查看>>
mono3.2.3+Jexus5.5+openSuSE13.1的asp.net
查看>>
UVAL 4728 Squares(旋转卡壳)
查看>>
Ordered Fractions usaco
查看>>
SQA
查看>>
web框架的概念
查看>>
算法训练 字串统计
查看>>
Codeforces-733C-Epidemic in Monstropolis&&733D-Kostya the Sculptor(乱搞)
查看>>