leetcode 面試題14 兩陣列第K個值

2021-09-22 23:13:03 字數 741 閱讀 6062

題目: 兩個有序陣列a和b,分別擁有m和n的長度,求其合併後的第k個值.

使用二分的方法。演算法思想在**注釋中

int findkthelm(int a, int abeg, int aend, int b, int bbeg, int bend, int k)

if (bbeg > bend)

//取中間位置

int amid = abeg + (aend - abeg)/2;

int bmid = bbeg + (bend - bbeg)/2;

//從a和b的開始位置到兩個陣列中間位置的元素個數

int halflen = amid - abeg + bmid - bbeg + 2;

if (a[amid] < b[bmid])

else

}else

else

}} int main()

else if (bpos >= blen)

else

else

} }

//輸出a和b的內容

for (int i = 0; i < alen; ++i)

cout

cout

for (int i = 1; i <= alen + blen; ++i)

return 0;

}

Leetcode 經典面試題 02兩數相加

兩數相加 給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 ...

面試題 兩數之和

題目 輸入乙個已經按公升序排序過的陣列和乙個數字,在陣列中查詢兩個數,使得它們的和正好是輸入的那個數字。要求時間複雜度是o n 如果有多對數字的和等於輸入的數字,輸出任意一對即可。例如輸入陣列1 2 4 7 11 15和數字15。由於4 11 15,因此輸出4和11。如下 includeusing ...

面試題 兩數之和

給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 ...