/***   删除排序数组中的重复项给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 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。你不需要考虑数组中超出新长度后面的元素。*/

我的解决方法:

public static int removeDuplicates(int[] nums) {if (nums == null) {return 0;}int length = nums.length;if (length < 2) {return length;}int temp = 0, j = length - 1;/*** 整体思路是冒泡排序相同的* 第一层循环,循环每一个数字i,* 第二层循环,从当前数字i 往后循环每一个数字j,* 如果发现i和j相等了,那么把j,用第三层循环,把j循环挪动到末尾,* 同时,数组的长度减一*/for (int i = 0; i <= j; i++) {//遍历每一个数for (int k = i + 1; k <= j; ) {if (nums[i] == nums[k]) {int m = k + 1;for (int q = k; m <= j; m++) {if (nums[q] != nums[m]) {temp = nums[q];nums[q] = nums[m];nums[m] = temp;q = m;}}j--;} else {k++;}}}return ++j;
}

耗时有点高,网上给了最快的例子如下:

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

我尝试了下,该算法是有问题的,有的测试案例,返回的结果是不正确的。 比如,{0,0,1,1,2,2,0},他返回是:
0,1,2,0 黑明显不对。

今天我的博客专家没有申请通过,因为内容偏基础,我要加油提高自己的深度。努力写出来高质量的博客。他们给的不通过的理由,说实话,蛮认同的。加油,以后博客就是我成长的地方。

算法------数组---------删除重复元素相关推荐

  1. 算法------数组---------存在重复元素

    给定一个整数数组,判断是否存在重复元素.如果任何值在数组中出现至少两次,函数返回 true.如果数组中每个元素都不相同,则返回 false.示例 1:输入: [1,2,3,1] 输出: true 示例 ...

  2. java删除数组中重复元素的几种方法

    Java操控数组,删除数组中所有的重复元素,使其数组元素全部唯一,有以下几种方法: 1,使用set(最好想到),set本身就是不重复的集合: package Array_test;import jav ...

  3. 求栈中元素个数算法_Algorithm 大家都会的去除有序数组中重复元素的三种算法...

    问题描述 给定一个有序数组,要删除数组重复出现的元素,使得每个元素之出现一次,然后返回移除重复数组后的新长度: 示例: 给定数组 nums = [1,2,4,4],删除重复出现的元素后,原数组变成 n ...

  4. 【C语言编程1】删除数组中重复元素,并排序

    C语言编程 程序的功能是删除数组中的重复元素,并且按照从小到大的顺序排序. 排序的算法是使用的最基础的冒泡排序. 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法. 它重复地 ...

  5. leetcode初级算法-删除重复元素

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

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

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

  7. java删除数组中重复元素

    id="BAIDU_DUP_fp_iframe" src="https://pos.baidu.com/wh/o.htm?ltr="> > src= ...

  8. √C语言超星作业题--数组之删除重复元素

    数组 1.删除重复元素 #include <stdio.h> int main(){int n;scanf("%d",&n);int a[n];int i,j, ...

  9. c\c++语言删除数组中重复元素

    c\c++语言删除数组中重复元素 如题:num[]={1,2,3,3,4,5,6} 输出为:123456 下为原代码: #include "stdafx.h" #include & ...

最新文章

  1. unexpected symbol、unexpected end of input
  2. pyqt5项目(计算器)
  3. 骁龙660是32位还是64位_骁龙660是32位还是64位_都是搭载骁龙660处理器 这三款国产手机如何选...
  4. Ultraedit使用技巧收集
  5. Mybatis中的核心配置文件SqlMapConfig.xml详细介绍
  6. python模拟登录淘宝直通车_Python实现的淘宝直通车数据抓取(1)
  7. [3] ADB 设备连接管理
  8. java上下文_Java,gRPC和上下文传播(Java, gRPC and Context propagation)
  9. RED-Net神经网络
  10. Mysql Like 性能优化总结
  11. html5 播放加密视频播放器,.NET MVC对接POLYV——HTML5播放器播放加密视频
  12. pycharm中配置Git教程
  13. 资产管理系统测试用例
  14. 记录因安装npcap带来的无线连接上不了网的问题
  15. 去哪儿 android2..3.6版本,去哪儿兜行手机版下载下载|去哪儿兜行安卓版(Android)2.1下载_太平洋下载中心...
  16. php业名人,名人榜
  17. 2tb的硬盘容量在计算机中识别的容量为,硬盘容量限制又来了,用2T以上硬盘的要注意了...
  18. 悲剧收场的梅耶尔给雅虎留下了哪些“遗产”?
  19. Java匹马行天下之一顿操作猛如虎,框架作用知多少?
  20. Go语言圣经 - 第11章 测试 - 11.1 go test 11.2 测试函数

热门文章

  1. b是python文件二进制打开_如何在Python中打开和显示原始二进制数据?
  2. python怎样定义一个数组_Python创建数组
  3. GraphQL 初探—面向未来 API 及其生态圈
  4. 【Android】 01. APP 进程启动和 ActivityThread 的关系
  5. 【20160924】GOCVHelper MFC增强算法(1)
  6. vim对nginx的语法高亮设置
  7. Ubuntu 14.04环境变量修改
  8. MogileFS高级应用(二)最后有疑问
  9. QCon演讲速递:异步处理在分布式系统中的优化作用
  10. GNU C之__attribute__