牛家庄幼儿园为庆祝61儿童节举办庆祝活动,庆祝活动中有一个节目是小朋友们围成一个圆圈跳舞。牛老师挑选出n个小朋友参与跳舞节目,已知每个小朋友的身高h_i。为了让舞蹈看起来和谐,牛老师需要让跳舞的圆圈队形中相邻小朋友的身高差的最大值最小,牛老师犯了难,希望你能帮帮他。
如样例所示:
当圆圈队伍按照100,98,103,105顺时针排列的时候最大身高差为5,其他排列不会得到更优的解
输入包括两行,第一行为一个正整数n(3 ≤ n ≤ 20) 第二行为n个整数h_i(80 ≤ h_i ≤ 140),表示每个小朋友的身高。
输出一个整数,表示满足条件下的相邻小朋友身高差的最大值。
4 100 103 98 105
5
1.将数组排序,如:105 103 100 98 2.排好的数组分为两组:arr1{105,100} arr2{98,103} 3.连接成新数组:105,100,98,103 4.求最大的差值
while(n=readline()){ var arr=readline().split(' '); var allVal=[]; var arr1=[],arr2=[]; arr=arr.sort(function(a,b){ return b-a; }) for(var i=0; i<n; i++){ if(i%2==0) arr1.push(arr[i]); else arr2.unshift(arr[i]); } var res=arr1.concat(arr2); allVal.push(Math.abs(res[0]-res[n-1])); for(var i=1; i<n; i++){ allVal.push(Math.abs(res[i]-res[i-1])); } allVal=allVal.sort(function(a,b){ return b-a; }) print(allVal[0]); }