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

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

示例 1:

给定数组 nums = [1,1,2],

函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。

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

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

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

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

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

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

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

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

// 在函数里修改输入数组对于调用者是可见的。
// 根据你的函数返回的长度, 它会打印出数组中该长度范围内的所有元素。
for (int i = 0; i < len; i++) {
print(nums[i]);
}
原本思路:
比较nums[i]和nums[i+1],不同就放到nums[j]后j++;后来直接比较[i]和[j]的情况,不同就赋给[j]后j++,其实思路是一个样的

class Solution {public:int removeDuplicates(vector<int>& nums) {if(nums.size()==0)return 0;int i;int j=0;int n=nums.size()-1;for(i=0 ; i<=n ;i++){if(nums[i] != nums[j]){nums[j+1]=nums[i];j++;}} return j+1;}
};

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

数组之删除排序数组中的重复项相关推荐

  1. 每日一题——删除排序链表中的重复项 II

    菜鸡每日一题系列打卡82天 每天一道算法题目 小伙伴们一起留言打卡 坚持就是胜利,我们一起努力! 题目描述(引自LeetCode) 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中没有重 ...

  2. go数组去除重复_让我们一起啃算法----删除排序链表中的重复元素

    删除排序链表中的重复元素(Remove-Duplicates-From-Sorted-List) 题干: 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次. 示例 1: 输入: 1-> ...

  3. Leetcode 129求根节点到叶节点数字之和、104二叉树的最大深度、8字符串转换整数(atoi)、82删除排序链表中的重复元素II、204二分查找、94二叉树的中序遍历、144二叉树的前序遍历

    Top1:Leetcode 129求根节点到叶节点数字之和 官方题解:https://leetcode.cn/problems/sum-root-to-leaf-numbers/solution/qi ...

  4. 算法---删除排序链表中的重复元素 II

    删除排序链表中的重复元素 II 给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 .返回 已排序的链表 . 输入:head = [1,2,3,3,4,4,5] ...

  5. LeetCode Algorithm 83. 删除排序链表中的重复元素

    83. 删除排序链表中的重复元素 Ideas 这题挺简单的,直接一次遍历,如果当前遍历的元素val跟下一个元素的val相等,说明是重复元素,直接把当前item的next指向item->next- ...

  6. 83. 删除排序链表中的重复元素 golang

    83. 删除排序链表中的重复元素 golang Me func deleteDuplicates(head *ListNode) *ListNode {if head == nil || head.N ...

  7. list元素求和_LeetCode刷题实战82:删除排序链表中的重复元素 II

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  8. 【Leetcode -61.旋转链表 -82.删除排序链表中的重复元素Ⅱ】

    Leetcode Leetcode -61.旋转链表 Leetcode -82.删除排序链表中的重复元素Ⅱ Leetcode -61.旋转链表 题目:给你一个链表的头节点 head ,旋转链表,将链表 ...

  9. 删除排序链表中的重复元素 II

    82. 删除排序链表中的重复元素 II 存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中 没有重复出现 的数字. 返回同样按升序排 ...

  10. leetcode 82. 删除排序链表中的重复元素 II

    难度:中等 频次:77 题目:给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 .返回 已排序的链表 . 解题思路: 一次遍历 注意: 遍历时候,如果两个节点 ...

最新文章

  1. CustomValidator验证控件的ServerValidate事件
  2. Android:面试官死亡问答,如何优化一个网络请求?大牛多个网络优化方案帮你解决!
  3. 2018.09.15 vijos1053Easy sssp(最短路)
  4. 炫界 (978) -(建工发现应用克隆漏)_除了DMA,这些漏损点检测与漏损区域识别技术你知道么?...
  5. 数据结构(九)计数排序
  6. angularjs 学习笔记(一) -----JSONP跨站访问
  7. UML 结构图之包图 总结
  8. Google广告优化与工具
  9. phpstorm 新建拉取项目_Flink1.8实时数仓项目实战
  10. python 多线程ping_Python快速多线程ping实现
  11. dp线长什么样子_一根DP线引发的显示器超频事件
  12. ghost系统卡正在启动服务器,GHOST完后安装win7系统卡在正在启动windows界面...-华硕笔记本装win7,华硕win10改win7步骤...
  13. Google Chrome插件开发-Context Menus
  14. keil5安装包下载
  15. 通过纯CSS实现文字前添加图片
  16. 人生是一场秋花的盛开
  17. STM32 USB使用记录:使用CDC类虚拟串口(VCP)进行通讯
  18. 为什么你们说好的程序在我的海思开发板上就是不行呢,难道真的是人品有问题
  19. 写给自己,学习如逆水行舟,不进则退
  20. php中logic(),thinkphp中的logic和service层是干什么用的?

热门文章

  1. nyoj203(迪杰斯特拉+01背包)
  2. 浅谈前端安全问题及策略
  3. 华为交换机配置Telnet
  4. 轻松自动化---selenium-webdriver(python) (十二)
  5. 【XSY3048 】Polynominal 数学
  6. java1.8 lambda进行并行运算
  7. 清北学堂模拟赛d6t3 反击数
  8. 【VS开发】Wix 安装教程
  9. MAC终端配色Solarized
  10. 转 Intellij中的常用快捷键