劍指Offer

2/18ページ

劍指Offer——陣列中出現次數超過一半的數字

題目描述 陣列中有一個數字出現的次數超過陣列長度的一半,請找出這個數字。例如輸入一個長度為9的陣列{1,2,3,2,2,2,5,4,2}。由於數字2在陣列中出現了5次,超過陣列長度的一半,因此輸出2。如果不存在則輸出0。 方法一 最先想到的是對陣列記性排序,然後遍歷陣列找出出現次數超過陣列長度的一半 […]

劍指Offer——最小的k個數

題目描述 輸入n個整數,找出其中最小的K個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4。 方法一 可以利用快排中partition的思想(快排詳細分析可以參考快速排序演算法) 隨機選中一個數字,在第一次partition之後,得到此時排列中該數字的位置ind […]

劍指Offer——醜數

題目描述 把只包含質因子2、3和5的數稱作醜數(Ugly Number)。例如6、8都是醜數,但14不是,因為它包含質因子7。 習慣上我們把1當做是第一個醜數。求按從小到大的順序的第N個醜數。 方法一 首先想到的是如果一個數是醜數,那麼它應該可以分解成一個醜數與2或3或5的積,所以可以將已經得到的醜 […]

劍指Offer——把陣列排成最小的數

題目描述 輸入一個正整數陣列,把陣列裡所有數字拼接起來排成一個數,列印能拼接出的所有數字中最小的一個。例如輸入陣列{3,32,321},則列印出這三個數字能排成的最小數字為321323。 方法 輸入為 vector<int> numbers, 輸出為string。 可已將numbers中 […]

劍指Offer——數值的整數次方

題目描述 給定一個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。 解題思路 本題做法比較簡單,但需要注意的點比較多: 1、base為0的情況:判斷base是否為0時也需要注意,由於計算機表示小數(包括float和double型小數)都有誤差,所 […]

劍指Offer——按之字形順序列印二叉樹

題目描述 請實現一個函式按照之字形列印二叉樹,即第一行按照從左到右的順序列印,第二層按照從右至左的順序列印,第三行按照從左到右的順序列印,其他行以此類推。 方法一 方法和從上往下列印二叉樹類似,遍歷順序是從上到下,每一行按照從左到右的順序進行遍歷,但是需要增加一個引數row來標記當前行數,如果是偶數 […]

劍指Offer——和為S的連續正數序列

題目描述 小明很喜歡數學,有一天他在做數學作業時,要求計算出9~16的和,他馬上就寫出了正確答案是100。但是他並不滿足於此,他在想究竟有多少種連續的正數序列的和為100(至少包括兩個數)。沒多久,他就得到另一組連續正數和為100的序列:18,19,20,21,22。現在把問題交給你,你能不能也很快 […]

《劍指offer》:[7]兩個佇列實現棧的C 程式碼實現

問題:兩個佇列實現棧。     因為佇列的特點是先進先出,而棧式先進後出。所以具體的實現步驟如下: (1)判斷是否為NULL;如果queue1和queue2都為NULL,則該棧為NULL; (2)如果queue1不為NULL,而queue2為NULL;則queue1出隊,進隊到queue2,如果qu […]