专栏首页赵俊的Java专栏删除排序数组中的重复数字Ⅱ

删除排序数组中的重复数字Ⅱ

题意

根据 删除排序数组中的重复数字 中的题意,跟进 ”删除重复数字“,如果可以允许出现两次重复将如何处理?

样例

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

思路

这道题跟 删除排序数组中的重复数字 差不多,无非就是多判断一次,判断是否有两个连续的重复元素即可。

代码实现

public class Solution {
    /**
     * @param A: a array of integers
     * @return : return an integer
     */
    public int removeDuplicates(int[] nums) {
        if (nums == null) {
            return 0;
        }
        
        int index = 0;
        int i, j;
        
        for (i = 0; i < nums.length;) {
            int now = nums[i];
            for (j = i; j < nums.length; j++) {
                if (nums[j] != now) 
                    break;
                if (j - i < 2) {
                    nums[index++] = now;
                }
            }
            i = j;
        }
        
        return index;
    }
}

原题地址

LintCode:删除排序数组中的重复数组Ⅱ

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • LeetCode 26 Remove Duplicates from Sorted Array

    一份执着✘
  • 恢复旋转排序数组

    一份执着✘
  • LeetCode 654 Maximum Binary Tree

    一份执着✘
  • 剑指Offer题解

    在一个长度为n+1的数组里的所有数字都在1~n的范围内,所以数组中至少存在一个数字是重复的。 请找出数组中任意一个重复的数字,但不能修改输入的数组。 例如输...

    星如月勿忘初心
  • leetcode-easy-array-删除排序数组中的重复项

    给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。

    shengjk1
  • 只出现一次的元素

    给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

    木瓜煲鸡脚
  • 查找算法常见的五大面试知识点与两类实战!

    查找(Search),又称为搜索,指从数据表中找出符合特定条件的记录。如今我们处在信息爆炸的大数据时代,如何从海量信息中快速找到需要的信息,这就需要查找技术。如...

    Datawhale
  • Leetcode 75 Sort Colors

    Given an array with n objects colored red, white or blue, sort them so that obj...

    triplebee
  • 【每日一练】第001期--两数之和

    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

    会呼吸的Coder
  • ACM算法基础

    N3/6-N2/2+N/3 ~ N3/6。使用 ~f(N) 来表示所有随着 N 的增大除以 f(N) 的结果趋近于 1 的函数。

    爱撸猫的杰

扫码关注云+社区

领取腾讯云代金券