最小的K個數(劍指offer)
題目描述
輸入n個整數,找出其中最小的K個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,。 方法一:運用Array.sort()方法。 sort方法改進後比基礎的8個排序算法稍微快點,看了源碼,知道其實是快排的改進版,所以時間復雜度是o(nlogn),我真是個小機靈。 當然一般求第k個數的時候考察的主要是維護最大堆的問題。 時間復雜度:o(nlogn) 空間復雜度:o(k)方法二:維護大頂堆的元素為k個
看下一篇隨筆的總結。
時間復雜度:o(nlogn) 空間復雜度:o(k)
最小的K個數(劍指offer)
相關推薦
最小的K個數(劍指offer)
快排 最大堆 元素 空間復雜度 隨筆 源碼 圖片 image alt 題目描述 輸入n個整數,找出其中最小的K個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,。 方法一:運用Array.sort()方法。 sort方
把陣列中全部數拼接組合成一個最小的數(劍指offer筆記)
題目:輸入一個正整數陣列,把數組裡所有數字拼接起來排成一個數,列印能拼接出的所有數字中最小的一個。例如輸入陣列{3,32,321},則打印出這三個數字能排成的最小數字為321323。先附上程式碼,後面具體講解一下為何這樣寫以及程式碼中涉及到的python方法# -*- cod
【Java】 劍指offer(40) 最小的k個數 《劍指Offer》Java實現合集 劍指offer(39) 陣列中出現次數超過一半的數字 《劍指Offer》Java實現合集
本文參考自《劍指offer》一書,程式碼採用Java語言。 更多:《劍指Offer》Java實現合集 題目 輸入n個整數,找出其中最小的k個數。例如輸入4、5、1、6、2、7、3、8這8個數字,則最小的4個數字是1、2、3、4。 思路 思路一:同劍指offer(39
(劍指offer)旋轉陣列的最小數字
時間限制:3秒 空間限制:32768K 熱度指數:429333 本題知識點: 查詢 題目描述 把一個數組最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。 輸入一個非減排序的陣列的一個旋轉,輸出旋轉陣列的最小元素。 例如陣列{3,4,5,1,2}為{1,2,3,4,5}的一個旋
二叉搜索樹的第k個結點(劍指offer)
blog 劍指offer tle ret vector bject tor sub oot 題目描述 給定一顆二叉搜索樹,請找出其中的第k大的結點。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按結點數值大小順序第三個結點的值為4。 1 /* 2 str
(劍指offer)把陣列排成最下的數
時間限制:1秒 空間限制:32768K 熱度指數:177103 本題知識點: 陣列 題目描述 輸入一個正整數陣列,把數組裡所有數字拼接起來排成一個數,列印能拼接出的所有數字中最小的一個。例如輸入陣列{3,32,321},則打印出這三個數字能排成的最小數字為321323。 imp
(劍指offer)連續子陣列的最大和
時間限制:1秒 空間限制:32768K 熱度指數:176092 本題知識點: 陣列 題目描述 HZ偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天測試組開完會後,他又發話了:在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全為正數的時候,問題很好解決。但是,如果向量
(劍指offer)二叉搜尋樹的第k個節點
時間限制:1秒 空間限制:32768K 熱度指數:143469 題目描述 給定一棵二叉搜尋樹,請找出其中的第k小的結點。例如, (5,3,7,2,4,6,8) 中,按結點數值大小順序第三小結點的值為4。 /* public class TreeNode { int val
(劍指offer)滑動視窗的最大值
時間限制:1秒 空間限制:32768K 熱度指數:126716 題目描述 給定一個數組和滑動視窗的大小,找出所有滑動窗口裡數值的最大值。例如,如果輸入陣列{2,3,4,2,6,2,5,1}及滑動視窗的大小3,那麼一共存在6個滑動視窗,他們的最大值分別為{4,4,6,6,6,5}; 針
二叉樹的深度(劍指offer)
item val 二叉 node oot 劍指offer style spa pub 題目描述 輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。 1 /* 2 struct TreeNode {
和為S的連續正數序列——牛客網(劍指offer)
http cti code 題目 作業 OS enc www. count-1 題目描述 小明很喜歡數學,有一天他在做數學作業時,要求計算出9~16的和,他馬上就寫出了正確答案是100。但是他並不滿足於此,他在想究竟有多少種連續的正數序列的和為100(至少包括兩個數
(劍指offer)跳臺階
時間限制:1秒 空間限制:32768K 熱度指數:314942 題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 思路 逆向思維,最後一級要麼跳1級,要麼跳2級。其實發現還是斐波那契數列的應用!
(劍指offer)變態跳臺階
時間限制:1秒 空間限制:32768K 熱度指數:248187 題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 程式碼一(遞迴): public class Solution { public
(劍指offer)斐波那契數列
時間限制:1秒 空間限制:32768K 熱度指數:407703 題目描述 大家都知道斐波那契數列,現在要求輸入一個整數n,請你輸出斐波那契數列的第n項(從0開始,第0項為0)。 n<=39 方案一(遞迴): public class Solution { pub
(劍指offer)用兩個棧來實現一個佇列
時間限制:1秒 空間限制:32768K 熱度指數:312041 本題知識點: 佇列 棧 題目描述 用兩個棧來實現一個佇列,完成佇列的Push和Pop操作。 佇列中的元素為int型別。 思路 stack1用來入隊。出隊的話,就把stack1依次出棧壓入stack2中,再把stack
(劍指offer)重建二叉樹
時間限制:1秒 空間限制:32768K 熱度指數:468529 題目描述 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,
(劍指offer)合併兩個有序連結串列
時間限制:1秒 空間限制:32768K 熱度指數:347558 本題知識點: 連結串列 題目描述 輸入兩個單調遞增的連結串列,輸出兩個連結串列合成後的連結串列,當然我們需要合成後的連結串列滿足單調不減規則。 思路 歸併排序思想,參考一下這篇博文 /* public class
(劍指offer)平衡二叉樹
平衡二叉搜尋樹(Self-balancing binary search tree)又被稱為AVL樹(有別於AVL演算法),且具有以下性質:它是一 棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹。 時間限制:1秒 空間限制:32768K 熱度指數
(劍指offer)二叉樹的深度
時間限制:1秒 空間限制:32768K 熱度指數:115503 題目描述 輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。 /** public class TreeNode { int val =
(劍指offer)陣列中的逆序對
時間限制:2秒 空間限制:32768K 熱度指數:228207 本題知識點: 陣列 題目描述 在陣列中的兩個數字,如果前面一個數字大於後面的數字,則這兩個數字組成一個逆序對。輸入一個數組,求出這個陣列中的逆序對的總數P。並將P對1000000007取模的結果輸出。 即輸出P%1000