JAVA去掉数组重复数字
2019-10-16 17:02
232 查看
江南一只猫
本文链接:https://blog.csdn.net/JN_Cat/article/details/102588911
去掉一个已经排好序的数组的重复数字,执行速度也是考虑的问题。
package JAVA_Project_01_04;//创建一个包 /* 提供两种思路解决去掉重复数字:第一种是增加一个数组,但是长度无法确定,记录没有重复的值; 第二种是增加一个数组,用于记录原数组中存在的数,再增加一个数组可以确定数组的长度,用于存放原数组的值。 */ public class TextDelRepeat {//操作去掉数组中重复数字的类 public static int[]changeMethodOne(int src[]){//方法一 去掉重复数字 int length=src.length;//获得传入数组的长度 int[] taget =new int[length];//声明一个数组,长度为传入数组的长度 int index = 0; taget[0]=src[0];//设置数组的初始值 for (int i = 1; i < length; i++) {//循环遍历传入数组 if (taget[index]!=src[i]){//遍历数组与初始值进行比较 index++;//等价于index=index+1 taget[index]=src[i];//元素赋值 } } return taget;//返回结果数组 } public static int[]changeMethodTwo(int src[]){//方法二 去掉重复数字 int length =src.length;//获得传入数组的长度 int[] tagetIndex=new int[length];//声明一个数组,长度为传入数组的长度 int tagetLength = length; for (int i = 0; i < length; i++) { tagetIndex[i]=0;//初始化tagetIndex } for (int j = 1; j < length; j++) {//记录重复的值 if (src[j]==src[j-1]){ tagetIndex[j]=1; tagetLength--; } } int[] target =new int[tagetLength]; int index=0; for (int k = 0; k < length; k++) {//循环将数组赋值 if (tagetIndex[k]==0){//数组元素等于1是存放重复数字 target[index++]=src[k]; } } return target; } public static void main(String[] args) { int[] a={1,1,1,2,3,4,5,6,9,9,12,53};//声明数组并初始化 int[] b=changeMethodOne(a);//调用第一种方法去掉重复数字 System.out.println("第一种方法去掉数组中重复的数字结果:"); for (int i = 0; i < b.length; i++) {//将返回的数组输出 System.out.println(b[i]+" "); } System.out.println(); System.out.println("第二种方法去掉数组中重复数字结果:"); int[] c=changeMethodTwo(a);//调用第二种方法去掉重复数字 for (int i = 0; i < c.length; i++) {//将返回的数组输出 System.out.println(c[i]+" "); } } } /* 在changeMethodone()方法中,声明一个与传入数组长度相等的数组,根据循环判断是否有重复的数字,并将不重复 的数字放入声明的数组中,如果传入数组中存在重复的数字,那么这个数组的长度应会小于传入数组的长度,这样也就造成了数组长度的浪费。 在ChangeMothodTwo()方法中,也声明一个与传入数组长度相等的数组tagetIndex,值初始化全为0.循环进行判断重复数字的个数,如果存在重复数字则 数组tagetIndex元素赋值为1.然后声明一个数组target,长度为(tagetIndex.length-重复数字个数)。当tagetIndex数组中元素为0的, 将数组src元素下标等于tagetIndex元素中不为0的下标的元素赋值给target. */
相关文章推荐
- JAVA去掉一个已排序数组的重复数字
- 去掉有序数组中重复数字 原地 leetcode java (最简单的方法)
- java__排序后的数组删除重复数字。给定升序排序的数组,如果数组有 22 个或 22 个以上相同的数字,去掉他们,直到剩下 22 个为止。
- java去掉数组中重复的数据和遍历数据
- Java数组,去掉重复值、增加、删除数组元素
- Java如何找出数组中重复的数字
- java编程:定义一个有重复数字的数组,将数组中的重复数字删除,得到一个没有重复数字的数组
- 数据存储——Java数组,去掉重复值、增加、删除数组元素的实现方法
- java 去掉重复的数字
- Java实现找出数组中重复的数字
- 数组中重复的数字(java版)
- 面试题3:数组中重复的数字(Java 实现)
- Java 判断数组中唯一一个不重复的数字,其它数字重复两次
- 剑指OFFER(java)-数组中重复的数字
- [Java]去掉数组中重复的元素
- java去掉数组中重复的元素
- java 数组去掉重复数据和排序
- Java数组去掉重复的方法集
- Java数组,去掉重复值、增加、删除数组元素
- LintCode-Java-100. 删除排序数组中的重复数字