写一个算法实现数组中连续相同的数字只输出一次。java实现

给定一个整数数组a,请实现一个排序算法,将该数组从大到小排列并输出~

public class Test
{
public static void main(String args[])
{
int[] arr = {4, 1, 2, 6, 3, 8, 9, 10, 7, 5};

for (int i = 0; i < 10; i++)
System.out.print(arr[i] + " ");
System.out.println();

for (int i = 0; i < 10 - 1; i++)
for (int j = 0; j < 10 - 1 - i; j++)
{
if (arr[j] > arr[j + 1])
{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
for (int i = 0; i < 10; i++)
System.out.print(arr[i] + " ");
}
}

编程的东西还是得自己动脑动手才学的会啊。
下面的代码是我给你提供的一种纯自己写的方法,不依靠SDK里面的任何已有类。
另外一种是用HashSet,将输入的元素存到HashSet中,因为Set是不允许有重复元素的,所以重复添加只会有一个值的元素存在。
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
System.out.println("请输入数组长度:");
Scanner sc = new Scanner(System.in);
int length = sc.nextInt();
System.out.println("请输入数组元素:");
int a[] = new int[length];
boolean isNumberInA[] = new boolean[length];
for(int i=0;i<length;i++){
a[i] = Integer.MIN_VALUE;
isNumberInA[i] = false;
}
for(int i=0,j=0;i<length;i++){
int input = sc.nextInt();
if(isNumberInA[input]==false){
a[j] = input;
isNumberInA[input] = true;
j++;
}
}
System.out.println("数组输出为:");
for(int i=0;i<length;i++){
if(a[i]==Integer.MIN_VALUE)
break;
else System.out.print(a[i]+" ");
}
}
}

class Tmp{
public static void main(String[] args)
{
int a[] = {9,8,8,6,6,4,3,2,4,2};

int i,j,k;
//冒泡法排序

for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if(a[j]>a[j+1])
{
k=a[j];
a[j]=a[j+1];
a[j+1]=k;
}
System.out.println("排序后的数组:");
for(i=0;i<10;i++)
System.out.print(a[i]+"、");
//实现数组中连续相同的数字只输出一次
System.out.println("\n实现数组中连续相同的数字只输出一次");
System.out.println("排序后的数组:");
System.out.print(a[0]);
for(i=1;i<10;i++)
if(a[i]!=a[i-1])
System.out.print("、"+a[i]);
}
}

写一个算法实现数组中连续相同的数字只输出一次。java实现
答:System.out.println("排序后的数组:");for(i=0;i<10;i++)System.out.print(a[i]+"、");//实现数组中连续相同的数字只输出一次 System.out.println("\n实现数组中连续相同的数字只输出一次");System.out.println("排序后的数组:");System.out.print(a[0]);for(i=1;i<10;i++)if(...

求解数组中连续相同元素的个数[
答:record = array[i];//将第0个元素先放入record中 while (i < maxsize - 1){ // maxsize为数组容量 i++;if (array[i] == record){ //出现相同,count加1 count++;} else { printf("出现了连续的%d个相同元素%d",count,record); // 打印前面出现的相同元素的个数 record = array[...

...个连续相等的数)Java编写下面的方法,测试某个数组是否有四个连续的...
答:public static boolean isConsecutiveFour(int[] values){//设置计数器记录最大重复的个数int count=0;//记录上一个数值便于比较int temp = values[0];for (int i = 1; i < values.length; i++) { if (temp==values[i]) {//当前值和上个值相同则递增计数器count++;if (count>=4)...

求Java大神,给定一个整数数组b[n],b中连续的相等元素构成的子序列称为...
答:int[] b = new int[] { 2, 2, 2, 4, 4, 3, 2, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 8, 8, 8, 8, 8, 4, 8, 8 };// 遍历数组 for (int i = 0; i < b.length - 1;) { // 定义一个平台的个数计数器 int count = 1;// 将i后边的...

...64字节数组中连续相同的16个字节,有什么好的算法吗?
答:if (a[i] == a[i+1]){ if (0==k){ k = i;// 记录起始位置 } j++;if (16==j){ printf("从第%d位到第%d位相同,相同的值为:%d\n", k+1, i+2, a[i]);system("pause");return 0;} } else { k=0;j=1;} } printf("未找到连续16个相同的字节!\n");system("...

找一个数组中最多相同的数的值,及它相同的次数。用C语言哈。谢谢了...
答:可以用数组来实现,比如有一个数组b,下标 为数组a中的值,每个值为出现的次数。比如b[i]=num,表示i出现了num次。实现的代码也很简单。//初始化数组b全部为0 for(i=0; i<n; i++){ b[a[i]]++;} 这样就可以了,直接找数组b中的最大值,就是出现次数,下表为出现的值。

matlab中求两个数组相同的连续元素部分
答:寻找相等点与其左右两端是否连续 temp2=[temp1,zeros(len,2)]+[zeros(len,1),temp1,zeros(len,1)]+[zeros(len,2),temp1];temp2=temp2(:,2:length(temp2)-1);去掉其中的0点干扰 temp3=temp1.*temp2;对连续的点置为1 temp3=(temp3>1);求得结果 result=A.*temp3;--- 最后说一下...

C语言:给定一个整形数组b[n],b中连续相等元素构成的子序列称为平台...
答:{ int b[N];int i, temp, Max=1, flag=0;scanf("%d",&b[0]);for(i=1,temp=1; i<N; ++i){ scanf("%d",&b[i]);if(b[i] == b[i-1]){ temp ++;flag =1; } else { flag=0;temp=1; } if(temp>Max)Max=temp;} printf("b中最长平台的长度为%d\n",Max)...

一个java编程题,怎么求出数组中重复数字的出现次数,并按次数从大到下...
答:start,middle-1); countNum(a,middle+1,finish); //cout<<"get here"<<middle<<endl; }else if(a[middle]>2) { countNum(a,start,middle-1); }else{ countNum(a,middle+1,finish);}//return count; } int main() { int s[1000]; ifstream inf("1.txt"); int i=0;while(...

大家好?想请教一个查找数组的算法,高手请进~~~
答:如果数组已经是排序好了的,那算法应该很简单。可以自己尝试写一个,是否需要考虑重复数据?

IT评价网,数码产品家用电器电子设备等点评来自于网友使用感受交流,不对其内容作任何保证

联系反馈
Copyright© IT评价网