算法:给定整数型数组,要求去除重复元素形成新数组,并返回新数组长度
来源:互联网 发布:刷枪软件 永久免费 编辑:程序博客网 时间:2024/04/28 07:39
/** * * @author VK * @Date 2016-12-19 10:48 * @Decribe 题目:给定一个整数型一维数组,去除重复元素形成新数组, * 并返回新数组长度。不额外分配数组空间 * */public class Demo { public static void main(String[] args) { int[] src = { 0, 1, 1, 1, 1, 2, 3, 4, 4, 5, 6, 7, 8, 8, 9, 9, 9 }; print(src,src.length); System.out.println("\n========== after calculate ==========\n"); int len = calculate(src); print(src,len); } public static int calculate(int[] src) { if (src == null || src.length == 0) return 0; int ret = 0; int count = 0; int index = 1;// 新数组的下标索引 int tmp = src[0]; for (int i = 1; i < src.length; i++) { // 1.前后元素若相同 count++ if (tmp == src[i]) { count++; } else {// 2.若不相同,count>0表示前面有重复值,需要进行去重位移 tmp = src[i]; if (count > 0) { src[index] = src[i]; } index++; } } ret = index; System.out.println("The number of removed elements =" + count);// 打印移除重复次数 return ret; } public static void print(int[] src,int len){ StringBuffer mBuffer = new StringBuffer(); mBuffer.append("len="); mBuffer.append(len); mBuffer.append('\n'); for (int i = 0; i < len; i++) { mBuffer.append(src[i]); mBuffer.append('\0'); } System.out.println(mBuffer.toString()); }}
计算结果:
0 0
- 算法:给定整数型数组,要求去除重复元素形成新数组,并返回新数组长度
- 删除有序数组中的重复元素,并返回数组的新长度
- 数组的复制,要求新数组不包含重复元素和长度浪费
- 给定一个数组arr和一个目标数targrt,删除所有目标值元素,并返回新长度
- leetcode 排序数组去重复并返回新数组长度Remove Duplicates from Sorted Array
- LeeCode 删除数组中某一特定值的元素,并返回新的数组长度
- java__给定一个升序排列的数组,去掉重复的数,并输出新的数组的长度
- 删除有序数组中的重复元素,返回数组的新长度,但允许最大重复次数为2
- 去除数组重复元素
- 去除数组的重复元素并排序
- Javascript 将数组按要求分割,并返回一个新的数组
- js删除数组中重复的条目并将新的数组返回
- 取出两个数组不相同的元素并返回到新的数组里面
- js 数组删除重复数据,返回新数组
- 去除数组中的重复元素
- 去除数组中重复元素
- 去除数组中的重复元素
- 去除数组中的重复元素
- python中的编码问题
- [LeetCode]45. Jump Game II &&贪心算法
- hightcharts属性
- CSDN如何转载别人的文章
- Select2下拉框总结
- 算法:给定整数型数组,要求去除重复元素形成新数组,并返回新数组长度
- Object对象如何类获取对应类的属性值
- KMP算法
- ubuntu16.04部署开源看板项目wekan(非docker部署)
- IMX6Q上使用NFS文件系统
- localhot 与 127.0.0.1 的区别
- JavaWeb页面国际化
- openstack学习笔记1
- UE4爬坑记