題目意思:給出兩個排好序的數組 ,不妨設為a,b都按升序排列,及k的值,求出第k大的那個元素。 分析這個題目,如果題目沒有時間復雜度的要求,我們可以定義兩個指針i,j分別指向a,b,如果a[i]<b[j]則i++否則 j++,這個記錄下走了多少步,如果==k步,則找到了第k大的元素 ...
已知一個拍好序的數組,長度為M 在其中找兩個數,其和為N 剛剛拿到這個題目的時候,首先的常規想法是遍歷循環求出所有數的和,最終其值為N的就是結果,這個算法時間復雜度為o N N 可能還有一些擴展的想法,那就是先把數組中比N大的元素去掉,這樣少檢查幾個元素 這是典型的程序員思維,太早開始考慮實現細節了 作為一個算法題目首先要把算法復雜度降低下來,然后再考慮常數C。。。不要太早開始考慮這種相對不重要的 ...
2011-12-23 22:34 6 2637 推薦指數:
題目意思:給出兩個排好序的數組 ,不妨設為a,b都按升序排列,及k的值,求出第k大的那個元素。 分析這個題目,如果題目沒有時間復雜度的要求,我們可以定義兩個指針i,j分別指向a,b,如果a[i]<b[j]則i++否則 j++,這個記錄下走了多少步,如果==k步,則找到了第k大的元素 ...
import java.util.Scanner; public class InsertNum { public static void main(String[] args) { // 思路:創建2個數組,把第一個數組的元素遍歷到第二個數組中,然后把要插入的元素與數組 ...
有一個已經排好序的數組,要求輸入一個數后,按原來順序的規律將它插入數組中 【答案解析】 將數據插入到已排序的序列中,只需兩步即可: 找待插入元素在數組中的插入位置 插入元素 具體如下: 注意:極端情況下,end可能會被減為-1,比如在上述序列中插入0 【代碼實現 ...
有一個已經排好序的數組,要求輸入一個數后,按原來順序的規律將它插入數組中 【答案解析】 將數據插入到已排序的序列中,只需兩步即可: 找待插入元素在數組中的插入位置 插入元素 具體如下: 注意:極端情況下,end可能會被減為-1,比如在上述序列中插入0 【代碼實現 ...
問題1、輸入一個遞增排序數組和一個數字s,在數組中查找兩個數,使得它們的和正好是s,如果有多對數字的和等於s,輸出任意一對即可。 顯然,很快能想到的是使用蠻力法(O(n2)),先固定一個數字,再判斷剩下的n-1個數字與它的和是否等於s。這種效率顯然有點低,我們可以使用下面比較快的方式 ...
題目:有一個已經排好序的數組。現輸入一個數,要求按原來的規律將它插入數組中。 思路:根據要插入的數的大小來判斷應該插入的位置 設計變量:n -- 待插入的數 index -- 插入的位置 b[] -- 新的數組 ...
有一個已經排好序的數組,要求輸入一個數后,按原來順序的規律將它插入數組中 【答案解析】 將數據插入到已排序的序列中,只需兩步即可: 找待插入元素在數組中的插入位置 插入元素 具體如下: 注意:極端情況下,end可能會被減為-1,比如在上述序列中插入0 【代碼實現 ...