Re: [北美] Microsoft questions

看板Oversea_Job (海外工作)作者 (@Seattle)時間17年前 (2007/12/15 06:47), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/4 (看更多)
※ 引述《LINC.bbs@ptt3.cc (Go cubs!)》之銘言: : Given 2 sorted arrays, a[] and b[] : combine them with no extra array(or linear space). : e.g.: a[10] = [1, 3, 5, 7, 9] : b[3] = [2, 4, 6] : the result is a[] = [1, 2, 3, 4, 5, 6, 7, 9], assuming a[] has enough space. : Can anyone solve it? I don't see a good solution(meaning O(N)) yet. 反過來走如何? int apos = 4; int bpos = 2; for(int i = a.length -1 ; i >= 0 ; i--){ if(apos < 0){ a[i] = b[bpos]; bpos --; }else if(bpos <0){ a[i] = a[apos]; apos --; }else if(a[apos] >= b[bpos]){ a[i] = a[apos]; apos --; } else { a[i] = b[bpos]; bpos --; } } 試過幾個edge case都沒問題,這應該就是O(n)的一個解答了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 207.188.29.244 ※ 編輯: HYL 來自: 207.188.29.244 (12/15 06:50)
文章代碼(AID): #17OmVrZh (Oversea_Job)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 3 之 4 篇):
文章代碼(AID): #17OmVrZh (Oversea_Job)