笔试题:排序后取最小差值数

Posted 南墙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了笔试题:排序后取最小差值数相关的知识,希望对你有一定的参考价值。

 笔试题:要从5个人中选取2个人作为礼仪,其中每个人的身高范围为160-190,要求2个人的身高差值最小(如果差值相同的话,选取其中最高的两人),以升序输出两个人的身高。 Smple input:161 189 167 172 188 Sample outPut: 188 189 
public class demo06{
public static void main(String[] args){
int[] arr={161,189,167,172,188};//原始值
//将原始值升序排序
getSort(arr);
//升序排序后,取出最小差值,记录最小差值下标
int[] arrDiff=new int[4];
int min=arr[1]-arr[0];
int index=-1;
int output1=0,output2=0;
for(int i=0;i<4;i++){
if(getDifferent(arr[i+1],arr[i])<=min)
    index=i;
}
System.out.println("身高差值最小的两个同学按升序排序输出为:"+arr[index]+","+arr[index+1]);
}
//将数组升序排序
public static int[] getSort(int[] arr){
int length=arr.length;
System.out.println(length);
for(int j=0;j<length-1;j++){
if(getDifferent(arr[j],arr[j+1])>0){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
return arr;
}
//两两相减,得到差值
public static int getDifferent(int a,int b){
return a-b;
}
}

 

以上是关于笔试题:排序后取最小差值数的主要内容,如果未能解决你的问题,请参考以下文章

白话经典算法系列之九 从归并排序到数列的逆序数对(微软笔试题)

笔试题: 二叉排序数左移k个

滴滴笔试题 就餐问题

华为笔试题

华为往年笔试题去重和排序vertor二维数组,迭代器

二分图判断-笔试题