华为-on演习--身高找到最好的二人

it2025-08-26  14

称号:

从5个人选择2作为个人礼仪器。中的每个个体的身高的范围160-190,要求2各高度差值至少(假设差异值同样的事情,他们中最高的选择),输出的两个人的身高升序。

Smple input:161 189 167 172 188 Sample outPut: 188 189

分析:我的理解就是先逆序排好数值。 然后逐对照较身高差值, 找出身高差值最小的然后输出

代码例如以下:

package com.wenj.test; /**  * 要从5个人中选取2个人作为礼仪,当中每一个人的身高范围为160-190,要求2个人的身高差值最小(假设差值同样的话,选取当中最高的两人),以升序输出两个人的身高。  *      Smple input:161 189 167 172 188 Sample outPut: 188 189  * @author wenj91-PC  *  */ public class TestBestGround {     public static void main(String args[]){         String strIn = "161 189 167 172 188";         TestBestGround tb = new TestBestGround();         tb.printTheBestGround(strIn);     }          public void printTheBestGround(String strIn){         String strTemp = strIn;         String[] strArr = strTemp.split(" ");                  int[] numArr = new int[strArr.length];         for(int i=0; i<strArr.length; i++){             numArr[i] = Integer.parseInt(strArr[i]);         }                  for(int i=0; i<numArr.length; i++){             for(int j=i+1; j<numArr.length; j++){                 if(numArr[i]<numArr[j]){                     int temp = numArr[i];                     numArr[i] = numArr[j];                     numArr[j] = temp;                 }             }         }                  int aver = numArr[0]-numArr[1];         int pos = 0;                  for(int i=1; i<numArr.length-1; i++){             int temp = numArr[i]-numArr[i+1];             if( temp < aver){                 aver = temp;                 pos = i;             }         }                  System.out.println(numArr[pos+1] + " " + numArr[pos]);              } }

转载于:https://www.cnblogs.com/bhlsheji/p/4593280.html

最新回复(0)