배열이 3 개인 정렬 된 배열이 5 개 있습니다. 가장 큰 두 요소를 찾을 수 있습니다. 다른 배열을 찾을 수 있습니까?정렬 된 배열에서 가장 큰 요소를 찾는 방법은 무엇입니까?
다른 3 원소를 어떻게 찾을 수 있습니까?
여기 내 코드
var maxArray=[];
var array1=[2,7,12,23,40,44,67,88,102]
var array2=[3,12,14,17,23,40,41,67,108]
var array3=[8,12,23,40,59,86,119,130]
var firstMax=array1[array1.length-1];
var secondMax=array2[array2.length-1];
alert(array1[array1.length-1]);
if(array1[array1.length-1]>array2[array2.length-1] && array1[array1.length-1]>array3[array3.length-1]){
maxArray.push(array1[array1.length-1]) ;
firstMax=array1[array1.length-1];
if(array2[array2.length-1]>array3[array3.length-1]){
secondMax=array2[array2.length-1];
}else {
secondMax=array3[array3.length-1];
}
}else if(array2[array2.length-1]>array1[array1.length-1]&& array2[array2.length-1]>array3[array3.length-1]){
maxArray.push(array1[array2.length-1])
firstMax=array2[array2.length-1];
if(array1[array1.length-1]>array3[array3.length-1]){
secondMax=array1[array1.length-1];
}else {
secondMax=array3[array3.length-1];
}
}else{
maxArray.push(array3[array3.length-1])
firstMax=array3[array3.length-1];
if(array2[array2.length-1]>array1[array1.length-1]){
secondMax=array2[array2.length-1];
}else {
secondMax=array1[array1.length-1];
}
}
maxArray.push(secondMax)
alert(maxArray)
바이올린 http://jsfiddle.net/9vsjm8uh/
단지 하나의 병합 된 배열을 만들 쉽게되지 않을 것, 일종의 즉, 다음, 마지막 5 개 요소를 나타? –
@MarcB 그게 아이디어 야, 그치? 배열을 내림차순으로 병합하고 병합 된 배열에서 5 개의 요소를 치면 멈 춥니 다? – beaker
그래,하지만 OP는 기본'pop_5 (array1 + array2 + array3) .sort())'(pseudo code, 물론) 대신에 많은 추가 작업을하고있다 –