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

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

给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。解题思路:

数组完成排序后,我们可以放置两个指针 ii 和 jj,其中 ii 是慢指针,而 jj 是快指针。只要 nums[i] = nums[j]nums[i]=nums[j],我们就增加 jj 以跳过重复项。

当我们遇到 nums[j] \neq nums[i]nums[j]̸​=nums[i] 时,跳过重复项的运行已经结束,因此我们必须把它(nums[j]nums[j])的值复制到 nums[i + 1]nums[i+1]。然后递增 ii,接着我们将再次重复相同的过程,直到 jj 到达数组的结尾

代码如下:

public int removeDuplicates(int[] nums) {if (nums.length == 0) return 0;int i = 0;for (int j = 1; j < nums.length; j++) {if (nums[j] != nums[i]) {i++;nums[i] = nums[j];}}return i + 1;
}

转载于:https://www.cnblogs.com/tsdblogs/p/10105193.html

leetcode第26题:删除排序数组的重复项相关推荐

  1. java删除有序数组中的重复元素_算法刷刷刷Leetcode第26题删除排序数组中的重复项...

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

  2. python去重复排序_Python实现删除排序数组中重复项的两种方法示例

    本文实例讲述了Python实现删除排序数组中重复项的两种方法.分享给大家供大家参考,具体如下: 对于给定的有序数组nums,移除数组中存在的重复数字,确保每个数字只出现一次并返回新数组的长度 注意:不 ...

  3. LeetCode题组:第26题-删除排序数组中的重复项

    1.题目:删除排序数组中的重复项 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度.(注意这里提到了排序数组,也就是说数组是有序的.如果无序,我们又 ...

  4. 删除排序数组的重复项(两种解法思路分享)

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

  5. 删除排序数组的重复项

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

  6. Java/26. Remove Duplicates from Storted Array 删除排序数组的重复项

    题目 . 代码部分(10ms 97.32%) class Solution {public int removeDuplicates(int[] nums) {int n = 0;boolean fl ...

  7. leetcode初级算法1.删除排序数组中的重复项

    leecode初级算法1.删除排序数组中的重复项 仅为个人刷题记录,不提供解题思路 题解与收获 class Solution {public int removeDuplicates(int[] nu ...

  8. 删除排序数组中重复元素的方法

    文章目录 1.删除重复元素,所有元素只保留一次 2.重复元素保留不超过2次 在上一篇文章中讨论了关于如何删除排序链表中重复元素的方法.那么如果底层数据结构是数组又将如何处理呢? 1.删除重复元素,所有 ...

  9. c++删除数组中重复元素_LeetCode题目26:删除排序数组中的重复项

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

最新文章

  1. Java获取指定日期的月初和月末日子
  2. linux下截取安卓手机屏幕,截取屏幕截图
  3. ssl1626-花店橱窗布置【日常dp】
  4. 四个角不是直角的四边形_同步资料人教版四上数学第五单元平行四边形和梯形5.1...
  5. 二分--求最小值的最大p1m2
  6. 深度残差网络(ResNet)详解与实现(tensorflow2.x)
  7. 一键清除苹果锁屏密码_Aiseesoft iPhone Unlocker下载-苹果设备解锁工具 v1.0.22 官方版...
  8. 如何简单理解光圈大小对手机摄影的影响?
  9. java遍历二级城市_java8用Lambda遍历省市区三级数据
  10. 序列化对象互转--Jackson中的ObjectMapper,解决超类派生问题,序列化问题
  11. 关于冯.诺依曼结构与哈佛结构的一些疑问
  12. 精密型工业级UHF超高频RFID读写器|读卡器JT7300的MODBUS协议说明
  13. You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).Please, commit your changes
  14. 12-用户及权限管理
  15. android自定义虚线,Android自定义view的方式绘制虚线
  16. 关于python数字的一种下划线奇怪写法
  17. PDF文件打开口令如何破解
  18. 递归判断回文字符串c语言,递归判断字符串是否为回文
  19. DD-wrt无线参数详解
  20. unity ugui改变width,height,pos

热门文章

  1. python 报文解析_python解析DNS数据包实例代码
  2. 备考java二级_2017年计算机二级Java备考练习题库(2)
  3. linux java api_Java常用API、Math类介绍
  4. 《计算机网络入门到精通》网络体系结构
  5. 希尔排序法(插入排序的改进版本)
  6. centos安装DHCP服务器
  7. yctx mysql.sql_MySQL 安装指南
  8. centos mysql 5.5.57_centos 6.5装mysql5.7
  9. Linux平台安装go并配置go环境
  10. 空间复杂度,实现从excel导出到txt文件中的java代码自动构建,逻辑条件不同实现则不同...