博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java算法题-删除有序数组中的重复元素
阅读量:5042 次
发布时间:2019-06-12

本文共 1639 字,大约阅读时间需要 5 分钟。

题目:编写一个方法,删除有序数组中的重复元素。例如:数组:1,2,2,4,5,5,5,8,9,9,10。删除重复元素后:1,2,4,5,8,9,10。

RemoveRepeatItem.java

1 public class RemoveRepeatItem { 2     /** 3      * 单元测试 4      */ 5     public static void main(String[] args){ 6         int[] sortArr = { 1,3,3,4,5,5,5,7,8,9,9,9 }; 7         int[] arr = removeRepeat(sortArr); 8         for(int item : arr){ 9             System.out.print(item + " ");10         }11     }12     13     /**14      * 删除有序数组中重复元素15      */16     public static int[] removeRepeat(int[] a){17         int N = a.length;18         int[] arr = new int[N];19         for(int i = 0;i < N; i++){20             arr[i] = a[i]; //保护性复制21         }22         int len = N;23         for(int i = 0; i < len; i++){24             //记录重复元素个数25             int repeatCnt = 0;26             for(int j = i + 1;j < len;j++){27                 if(arr[j] == arr[i]){28                     //如果重复,repeatCnt加129                     repeatCnt++;30                 } else if(arr[j] > arr[i]){31                     //及时跳出循环32                     break;33                 }34             }35             //如果重复,开始移动元素36             if(repeatCnt > 0){37                 for(int k = i + repeatCnt + 1; k < len;k++){38                     arr[k - repeatCnt] = arr[k];39                 }40                 //数组长度减小41                 len = len - repeatCnt;42             } 43         }44         45         //结果数组46         int[] result = new int[len];47         for(int i = 0;i < len; i++){48             result[i] = arr[i];49         }50         51         return result;52     }53 }

 

 

转载于:https://www.cnblogs.com/dongliyang/archive/2013/04/02/2994583.html

你可能感兴趣的文章
时间>金钱
查看>>
元数据元素
查看>>
Visual Studio Code 构建C/C++开发环境
查看>>
web自己主动保存表单
查看>>
一个小的日常实践——高速Fibonacci数算法
查看>>
创建与删除索引
查看>>
java的基本数据类型
查看>>
机器学些技法(9)--Decision Tree
查看>>
静态页面复习--用semantic UI写一个10min首页
查看>>
在Windows下安装64位压缩包版mysql 5.7.11版本的方法
查看>>
drf权限组件
查看>>
输入月份和日期,得出是今年第几天
查看>>
利用mysqldump备份mysql
查看>>
Qt中子窗口全屏显示与退出全屏
查看>>
使用brew安装软件
查看>>
[BZOJ1083] [SCOI2005] 繁忙的都市 (kruskal)
查看>>
吴裕雄 python 机器学习——数据预处理嵌入式特征选择
查看>>
Centos6.4安装JDK
查看>>
201521123069 《Java程序设计》 第4周学习总结
查看>>
线性表的顺序存储——线性表的本质和操作
查看>>