У меня есть три отсортированных массива. Мне нужно найти пятерку из пяти элементов из этого массива. Я могу найти первый элемент с наибольшим размером элемента. Как я найду другого?Как найти наибольшие элементы из отсортированного массива?
Вы можете предложить нам, как мы можем найти другие 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())' (псевдокод, конечно) –