第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

js數(shù)組操作問題

js數(shù)組操作問題

收到一只叮咚 2019-03-21 18:13:33
給定一個(gè)有序不重復(fù)數(shù)組arr1 = [a1,a2,....,an] , 一個(gè)該數(shù)組的子集 arr2 = [b1,b2,....,bn](順序與arr1 一致)任意給定一個(gè)arr1的元素 ai , 請將其插入 arr2 并保證 順序與 arr1 的順序一致比如 arr1 [3,5,4,8] , arr2 [5,8] 現(xiàn)在要把 4 插入到 arr2需要結(jié)果為 [5, 4, 8]求一個(gè)優(yōu)雅的運(yùn)算方法---------------分割線-------------我采納了 @hkuclion 的答案 并作了小小的修改let source = [3,5,4,8];let target = [5,8];let needle = 4;let source_index = source.indexOf(needle);if(source_index !== -1){    let target_index = -1;    while (source_index && target_index === -1) {        target_index = target.indexOf(source[--source_index]);    }    target.splice(target_index + 1, 0, needle);}
查看完整描述

4 回答

?
慕萊塢森

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊

嘗試下面代碼


let source = [3,5,4,8];

let target = [5,8];

let needle = 4;


let source_index = source.indexOf(needle);

if(source_index !== -1){

    let target_index = source_index? target.indexOf(source[source_index - 1]) + 1:source_index;

    target.splice(target_index, 0, needle);

}


查看完整回答
反對 回復(fù) 2019-04-01
?
搖曳的薔薇

TA貢獻(xiàn)1793條經(jīng)驗(yàn) 獲得超6個(gè)贊

還是二分 修改一下比較的方式就行


let arr1 = [3,5,4,8] 

let arr2 = [5,8] 

let indexMap = {}

for(let i=0;i<arr1.length;i++){

    indexMap[arr1[i]] = i

}

insert(arr2,0,arr2.length,4)

console.log(JSON.stringify(arr2))


function insert(arr,l,r,num){

    if(l==r){

        arr.splice(l, 0, num)

        return

    }

    let index = parseInt((r+l)/2)

    if(indexMap[arr[index]]<indexMap[num]){

        insert(arr,index+1,r,num)

    }else{

        insert(arr,l,index,num)

    }

}


查看完整回答
反對 回復(fù) 2019-04-01
?
翻翻過去那場雪

TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊

  let source = [3, 5, 4, 8]

  let target = [5, 8]

  let insert = 4


  let index = source.indexOf(insert)

  for (let i = 0; i < target.length; i++) {

    let source_index = source.indexOf(target[i])

    if (source_index > index) {

      target.splice(i, 0, insert)

      break

    }

  }

  if (target.indexOf(insert) === -1) target.push(insert)


查看完整回答
反對 回復(fù) 2019-04-01
?
德瑪西亞99

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個(gè)贊

既然是有序的……其實(shí)有沒有arr1都無所謂的……

有序的,你直接用二分把aiarr2里面塞就行了。


查看完整回答
反對 回復(fù) 2019-04-01
  • 4 回答
  • 0 關(guān)注
  • 466 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)