1083

package com.company;

import java.util.*;

public class Main {

    public static void main(String[] args) {
    // write your code here
        Scanner sc=new Scanner(System.in);
        int N=Integer.parseInt(sc.nextLine());
        int[] front=new int[N];
        int[] diff=new int[N];
        Set<Integer> back=new HashSet<Integer>();
        //有序数组
        for (int i=0;i<N;i++){
            front[i]=sc.nextInt();
        }
        //获取1~N的set集合,无序
        for (int j=0;;j++){
            back.add((int)(Math.random()*N)+1);
            if(back.size()==N){
                break;
            }
        }
        //将set转为int数组
        Object[] newb=back.toArray();
        int[] newback=new int[newb.length];
        for (int i=0;i<newb.length;i++){
            newback[i]=(int)newb[i];
        }
        //将正反差装到diff里面,另外将结果放到stiff去重
        Set<Integer> stiff=new HashSet<Integer>();
        for (int i=0;i<N;i++){
            diff[i]=Math.abs(front[i]-newback[i]);
            stiff.add(diff[i]);
        }
        //将去重后的stiff集合转为数组
        Object[] stiffarr=stiff.toArray();
        int[] intstf=new int[stiffarr.length];
            for (int i=0;i<stiffarr.length;i++){
            intstf[i]=(int)stiffarr[i];
        }
        //对去重的数组intstf进行排序
        Arrays.sort(intstf);
        //新建计数用的数组,每个元素初始值为0
        /*int[] count=new int[intstf.length];
            for (int i=0;i<intstf.length;i++){
            count[i]=0;
        }*/
        int count=0;
        for (int i=intstf.length-1;i>=0;i--){
            for (int j=0;j<N;j++){
                if (intstf[i]==diff[j]){
                    count++;
                }
                if (j==N-1&&count>=2){
                    System.out.println(intstf[i]+" "+count);
                    count=0;
                }
            }
        }
    }
}

猜你喜欢

转载自www.cnblogs.com/zhuzehua/p/9764845.html
今日推荐