笔试题:排序后取最小差值数
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; } }
以上是关于笔试题:排序后取最小差值数的主要内容,如果未能解决你的问题,请参考以下文章