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

不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

示例 1:

给定 nums = [1,1,1,2,2,3],

函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 。

你不需要考虑数组中超出新长度后面的元素。
示例 2:

给定 nums = [0,0,1,1,1,1,2,3,3],

函数应返回新长度 length = 7, 并且原数组的前五个元素被修改为 0, 0, 1, 1, 2, 3, 3 。

你不需要考虑数组中超出新长度后面的元素。
说明:

为什么返回数值是整数,但输出的答案是数组呢?

请注意,输入数组是以“引用”方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。

你可以想象内部操作如下:

// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝
int len = removeDuplicates(nums);

// 在函数里修改输入数组对于调用者是可见的。
// 根据你的函数返回的长度, 它会打印出数组中该长度范围内的所有元素。
for (int i = 0; i < len; i++) {
    print(nums[i]);
}

思路:修修补补老半天,其实就两个指针往后统计+赋值。

注意保证最后一次赋值顺利进行:如i<=length,if(i!=length)

class Solution {public int removeDuplicates(int[] nums) {if(nums.length==0)return 0;int index=0;int target=nums[0];int num=0;for(int i=1;i<=nums.length;i++){if(i!=nums.length && target==nums[i]){num++;}else{nums[index++]=target;if(num>0){num=0;nums[index++]=target;}if(i!=nums.length)target=nums[i];}}return index;}
}

leetcode80. 删除排序数组中的重复项 II相关推荐

  1. LeetCode-80: 删除排序数组中的重复项 II

    题目描述: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完 ...

  2. vue删除数组中的一条数据_删除排序数组中的重复项 II

    删除排序数组中的重复项 II题目 给定一个增序排列数组 nums ,你需要在 原地 删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在 原地 修改 ...

  3. 80. 删除排序数组中的重复项 II golang

    80. 删除排序数组中的重复项 II 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O ...

  4. Leecode刷题【1数组专题4】80. 删除排序数组中的重复项II (以及通用解法)

    Leecode刷题 [1数组专题4]80. 删除排序数组中的重复项II (以及通用解法) 题目: 思路 双指针法: (错误代码) 正解: 通用解法: 题目: 给你一个有序数组 nums ,请你 原地 ...

  5. LeetCode--80. 删除排序数组中的重复项Ⅱ(双指针,暴力)

    删除排序数组中的重复项Ⅱ(C,Python) 1. 题目描述 2. 题目分析 3. C语言实现 4. Python实现 1. 题目描述 难度:中等 2. 题目分析 这道题是LeetCode–26. 删 ...

  6. Leetcode--80. 删除排序数组中的重复项Ⅱ

    给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. 示例  ...

  7. LeetCode 80. 删除排序数组中的重复项 II

    1. 题目 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完 ...

  8. 力扣删除排序数组中的重复项 II

    给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度. 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的 ...

  9. LeetCode 79单词搜索80删除排序数组中的重复项Ⅱ81.搜索旋转排序数组Ⅱ

    新人公众号(求支持):bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打 ...

最新文章

  1. 安卓开发|自定义监听器的三个步骤
  2. Java接收多台设备发送消息_FCM(Firebase Cloud 消息传递)发送到多个设备
  3. IE8下 Select文字垂直居中的办法
  4. object-c html,object.html
  5. 20145237 《信息安全系统设计基础》第2周学习总结
  6. Django 下添加左侧字段显示和搜索
  7. 跟面试官侃半小时MySQL事务隔离性,从基本概念深入到实现
  8. 使用大数据闪存打造融合数据平台
  9. 统计csv词频_Python|国家统计局CPI数据动态图表可视化
  10. VS各种工程文件说明
  11. 使用arttemplate js模板引擎,直接用模板渲染,减少字符串拼接。
  12. android 序列化传参数,Android序列化之Parcelable和Serializable的使用详解
  13. 产品经理第一件事-系统背景研究
  14. Selenium1、Selenium2、Selenium3的区别,终于讲清楚了
  15. CMOS Image Sensor的接口硬件设计(DVP/MIPI CSI)
  16. JsonPath 解析Josn字符串
  17. html5三国策略,HTML5新游《乱弹三国》今日首曝
  18. 【3D视觉创新应用竞赛作品系列​】轻量化、松耦合的手持RGB-D室内环境实时重建系统
  19. 2022必读的5篇行业趋势报告(内附下载)
  20. CodeForces - 743B

热门文章

  1. sqlserver oracle插件,SQLServer链接服务器至Oracle
  2. java 异常 理解_java异常理解(1)
  3. arduino 光控灯_Arduino光控开关
  4. python目标识别代码_利用ImageAI库只需几行python代码超简实现目标检测
  5. java 采样_Java编程实现beta分布的采样或抽样实例代码
  6. /etc/fstab和/etc/mtab的区别!
  7. Linux内核的Makefile和kconfig解读
  8. 网络编程模型综述 之 多线程模型
  9. python逻辑运算符不懂_Python之逻辑运算符
  10. MySQL——数据库和表的增删改查