LintCode 删除数组中的重复元素题目分析代码

题目

给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度。

不要使用额外的数组空间,必须在原地没有额外空间的条件下完成。

样例给出数组A =[1,1,2],你的函数应该返回长度2,此时A=[1,2]

分析

类似这类数组原地删除问题,设置两个指针,一快一慢,快的指针负责遍历,慢的指针负责筛选保留的数据。 可参考前几篇这类的数组问题

代码

public class Solution {
    /**
     * @param A: a array of integers
     * @return : return an integer
     */
    public int removeDuplicates(int[] nums) {
        // write your code here
        if(nums.length == 0) return 0;
        int slow = 0;
        int fast = 0;
        int count = 0;
        while(fast < nums.length-1)
        {
            if(nums[fast+1] != nums[slow])
            {
                nums[slow] = nums[fast];
                slow++;
                count++;
            }
            fast++;
        }
        return count;
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java学习

面试題5(请说出Java 语言中覆盖和重事)

考点:考察求职者对于Java重载和覆盖的区分。 出现频率: ★★★ 【面试题解析】考察求职者对于Java 重载和覆盖的区分。从前面对重载和覆盖的描述,很容易就能...

30080
来自专栏三流程序员的挣扎

Python 自学二——类型

', '.join(['cats', 'rats', 'bats']) # 以 `, ` 分隔 'cats, rats, bats' s = 'cat ra...

18830
来自专栏北京马哥教育

Python 运算符,你了解多少?

? 文 | 云豆 图 | 来源网络 ? 云豆贴心提醒,本文阅读时间6分钟,文末有秘密! 什么是运算符? 本章节主要说明Python的运算符。举个简单的...

43380
来自专栏武军超python专栏

python组合数据类型及各种操作小总结

python中,一共有四种组合数据类型,他们分别是列表(list),元组(tuple),集合(set),字典(dict)。而这些数据类型分别都有什么作用?他们有...

13470
来自专栏codingforever

经典算法巡礼(五) -- 排序之归并排序

归并排序是创建在归并操作上的一种有效排序算法。所谓归并操作,指的是将两个已经排序的序列合并成一个序列的操作。归并排序是分治思想的典型示范。

5320
来自专栏前端知识分享

第191天:js---Array常用属性和方法总结

13820
来自专栏葡萄城控件技术团队

JavaScript 常用功能总结

小编吐血整理加上翻译,太辛苦了~求赞! 本文主要总结了JavaScript 常用功能总结,如一些常用的JS 对象,基本数据结构,功能函数等,还有一些常用的设计模...

224100
来自专栏smy

php unset对json_encode的影响

发现对一个数组unset前后,变量的类型变化了,unset前是数组,unset后是对象

9910
来自专栏IMWeb前端团队

JSON Schema 参考书

本文作者:IMWeb 孙世吉 原文出处:IMWeb社区 未经同意,禁止转载 1 简介 JSON 模式(JSON Schema)是一种基于 JSON 格...

411100
来自专栏C/C++基础

字符数组的初始化与赋值

C语言中表示字符串有两种方式,数组和指针,字符数组是我们经常使用的方式。变量的定义包括指明变量所属类型、变量名称、分配空间以及初始化。可以看出,变量的初始化是变...

33320

扫码关注云+社区

领取腾讯云代金券