美文网首页LeetcodeAndroid开发经验谈程序员
不新建数组完成数据去重问题

不新建数组完成数据去重问题

作者: Dynamic_2018 | 来源:发表于2017-11-10 14:39 被阅读31次

题外话:除了业务逻辑,我们应该还需要关注代码的艺术,编程之美。慢慢的把涉及到算法 数据结构 典型的操作基本类型的例子记录下来。
leetcoode

题目

Given a sorted array, remove the duplicates

in-place

such that each element appear only

once

and return the new length.

Do not allocate extra space for another array, you must do this by

**modifying the input array

in-place**

with O(1) extra memory.

思路

抓住关键 已排序(未排序也不可能0(1)完成)、不可再分配空间
当然这道题是一道esay 弄清题意后 很容易想到用快慢指针来记录,快指针遍历玩数组,慢指针记录新的数组,但是指向同一个数组。

代码

class Solution {
    public int removeDuplicates(int[] nums) {
        //注意是排序后的数组  用两个指针去跟踪
        int fast = 0;
        int slow = 0;
        for( ;fast<nums.length;fast++){
            if(nums[fast] != nums[slow]){ //如果不一样 说明又多了一个独立的元素
                slow ++;
                nums[slow] = nums[fast];//一样时,这里还要把满指针的数据也改了,避免没有及时更新数组,漏掉快指针下一个重复的数据。
            }else{
                  
            }
        }
        return slow+1;
        
    }
}

ps:

主要是排序好的数组就比较好操作了,慢指针需要及时更新数据,不然不能通过所有case。

相关文章

  • 不新建数组完成数据去重问题

    题外话:除了业务逻辑,我们应该还需要关注代码的艺术,编程之美。慢慢的把涉及到算法 数据结构 典型的操作基本类型的例...

  • 新建数组并且去重

  • 数组去重的几种方法

    我们先建一个有重复值的数组 用set数据结构去重 新建一个数组,判断这个数组里有没有去重数组里的值,没有就push...

  • 数组去重

    一般数据结构的数组去重, 数组对象去重,根据某个属性进行去重

  • js reduce去重用法

    reduce不仅仅可以数据累加,还可以实现去重效果。 重复次数计算 数组去重 数组对象去重,转为数组 对象去重

  • js中数组去重的三种方法

    数组去重的三种方法: 1、 利用es6中 set类型实现数组去重。 2、 新建一个空数组,然后循环之前的数组,判断...

  • 数组去重

    整理自js中基础数据结构数组去重问题思考?如何去除数组中重复的项 例如数组:[1,3,4,3,5]我们在做去重的时...

  • 前端面试题

    数组去重indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。新建一新数组,遍历传入数组,值不...

  • web前端常见面试题

    面试常见问题总结 JavaScript 原型 数据存储 : 堆栈 深拷贝 数组去重 null undefined...

  • ES6易忘的好用知识点

    1.数组字符串去重 利用es6的set数据结构特性:成员的值都是唯一的 来完成数组去重 2.获取json的key和...

网友评论

    本文标题:不新建数组完成数据去重问题

    本文链接:https://www.haomeiwen.com/subject/ivubmxtx.html