华为OJ 整数排序 不出现连续数

来源:互联网 发布:ajax上传文件到阿里云 编辑:程序博客网 时间:2024/06/05 07:40

实现输入一组大于等于0的整数,根据从小到大的顺序排序后输出,排序后有连续数时,只输出连续数中最小和最大的两个数。


import java.util.*;

public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String s=sc.nextLine();
String[] a=s.split(",");
int[] b=new int[a.length];
for(int i=0;i<a.length;i++){
b[i]=Integer.parseInt(a[i]);
}

//排序
Arrays.sort(b);
int len=b.length;

//判断有没有出现连续的
for(int i=0;i<len;i++){
int count=0;//用于标记出现的连续数时候超过了2个。
int j=1;
while(i+j<len&&b[i+j]==b[i]+j){
count++;
j++;
}

//如果超过了两个,就把出了头尾意外的都置0
if(count>=3){
for(int k=i+1;k<i+count;k++)
b[k]=0;

}
}

//输出
for(int i=0;i<len;i++)
if(b[i]!=0){
System.out.print(b[i]+" ");
}
System.out.println();
}
}

0 0
原创粉丝点击