三國紛爭
2018-08-03 17:19:24
今天面試,考官給了一道算法題,有數(shù)組1和數(shù)組2,這兩個數(shù)組都是已經(jīng)按照從大到小排好序的,然后求兩個數(shù)組集合的中間數(shù)。給出的思路是:要從已排好順序的數(shù)組1和數(shù)組2入手,只需要比較數(shù)組1和數(shù)組2的第一個元素,然后一直循環(huán)下去就可以了。然后我的思路就如下代碼,但是最后的temp一直是undefined,打了斷點也沒看懂,有小伙伴能給解釋下嗎,謝謝啦 function test(arr1,arr2){ var arr=[]; while(arr1.length>0&&arr2.length>0){ if(arr1[0]>=arr2[0]){ arr.push(arr1[0]); arr1.pop(arr1[0]); }else if(arr1[0]<arr2[0]){ arr.push(arr2[0]); arr2.pop(arr2[0]); } } var temp; if(arr1.length=0){ temp=arr.concat(arr2); } if(arr2.length=0){ temp=arr.concat(arr1); } return document.write(temp); }
3 回答

慕桂英546537
TA貢獻1848條經(jīng)驗 獲得超10個贊
function combine(a1, a2) {
var a3 = []
var i = 0
var j = 0
var k = 0
while (i < a1.length && j < a2.length) {
if (a1[i] > a2[j]) {
a3[k] = a1[i]
i++
k++
} else {
a3[k] = a2[j]
j++
k++
}
}
while (i<a1.length) {
a3[k] = a1[i]
i++
k++
}
while (j<a2.length) {
a3[k] = a2[j]
j++
k++
}
return a3
}
添加回答
舉報
0/150
提交
取消