温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java中如何删除排序数组中的重复项

发布时间:2022-01-17 09:25:33 阅读:213 作者:清风 栏目:大数据
Java开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

这篇文章主要为大家展示了“java中如何删除排序数组中的重复项”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java中如何删除排序数组中的重复项”这篇文章吧。

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

不要使用额外的数组空间,你必须在原地修改输入数组并在使用 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 。

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

答案:

 1public int removeDuplicates(int[] nums) { 2    int n = nums.length; 3    if (n < 2) 4        return n; 5    int pos = 2; 6    for (int i = 2; i < n; ++i) 7        if (nums[i] != nums[pos - 2]) 8            nums[pos++] = nums[i]; 9    return pos;10}

解析:

题目中说的是排序的数组,那这就简单了。代码比较简单就不再介绍,下面再来看一下其他的解法。

 1public int removeDuplicates(int[] nums) { 2    int i = 0; 3    for (int n : nums) 4        if (i < 2 || n > nums[i - 2]) 5            nums[i++] = n; 6    return i; 7} 8 9public int removeDuplicates(int[] nums) {10    int n = nums.length, count = 0;11    for (int i = 2; i < n; i++)12        if (nums[i] == nums[i - 2 - count])13            count++;14        else15            nums[i - count] = nums[i];16    return n - count;17}

解法都大同小异,基本思想还是没变。

Java的特点有哪些

Java的特点有哪些 1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。 2.Java具有简单性、面向对象、分布式、安全性、平台独立与可移植性、动态性等特点。 3.使用Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

以上是“java中如何删除排序数组中的重复项”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

原文链接:https://my.oschina.net/u/1010616/blog/4440535

AI

开发者交流群×