原创 Leetcode(23)合併K個排序鏈表

題目描述 合併 k 個排序鏈表,返回合併後的排序鏈表。請分析和描述算法的複雜度。 示例: 輸入: [ 1->4->5, 1->3->4, 2->6 ] 輸出: 1->1->2->3->4->4->5->6 解題思路 轉化爲兩兩鏈表合成

原创 劍指offer(14)鏈表中倒數第k個結點

題目描述 輸入一個鏈表,輸出該鏈表中倒數第k個結點。 解題思路 輸出的是 倒數第k個鏈表,可以參考Leetcode刪除鏈表倒數節點的那個算法題 一共有兩種解法,一是兩遍遍歷的,二是一遍遍歷的。 兩次遍歷的思路就是先遍歷一遍 求出鏈表長

原创 Leetcode(19)刪除鏈表的倒數第N個節點

題目描述 給定一個鏈表,刪除鏈表的倒數第 n 個節點,並且返回鏈表的頭結點。 示例: 給定一個鏈表: 1->2->3->4->5, 和 n = 2. 當刪除了倒數第二個節點後,鏈表變爲 1->2->3->5. 說明: 給定的 n 保證

原创 Leetcode(24)兩兩交換鏈表中的節點

題目描述 給定一個鏈表,兩兩交換其中相鄰的節點,並返回交換後的鏈表。 示例: 給定 1->2->3->4, 你應該返回 2->1->4->3. 說明: 你的算法只能使用常數的額外空間。 你不能只是單純的改變節點內部的值,而是需要實際的

原创 劍指offer(13) 調整數組順序使奇數位於偶數前面

題目描述 輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有的奇數位於數組的前半部分,所有的偶數位於數組的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。 解題思路 代碼的完整性 這個題呢,需要調整奇偶數的順序

原创 劍指offer(8) 跳臺階

題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 解題思路 a.如果兩種跳法,1階或者2階,那麼假定第一次跳的是一階,那麼剩下的是n-1個臺階,跳法是f(

原创 Leetcode(18)四數之和

題目描述 給定一個包含 n 個整數的數組 nums 和一個目標值 target,判斷 nums 中是否存在四個元素 a,b,c 和 d ,使得 a + b + c + d 的值與 target 相等?找出所有滿足條件且不重複的四元組。

原创 劍指offer(9) 變態跳臺階

題目描述 一隻青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 解題思路 關於本題,前提是n個臺階會有一次n階的跳法。分析如下: f(1) = 1 f(2) = f(2-1)

原创 劍指offer(10) 矩形覆蓋

題目描述 我們可以用21的小矩形橫着或者豎着去覆蓋更大的矩形。請問用n個21的小矩形無重疊地覆蓋一個2n的大矩形,總共有多少種方法?* 解題思路 小矩形可以橫放可以豎放,則第一步一共有兩種方法,豎放或橫放。在豎放之後的話,涉及到的就是

原创 Leetcode(17)電話號碼的字母組合

題目描述 給定一個僅包含數字 2-9 的字符串,返回所有它能表示的字母組合。 給出數字到字母的映射如下(與電話按鍵相同)。注意 1 不對應任何字母。 示例: 輸入:“23” 輸出:[“ad”, “ae”, “af”, “bd”, “

原创 Leetcode(16)最接近的三數之和

題目描述 給定一個包括 n 個整數的數組 nums 和 一個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。 例如,給定數組 nums = [-1

原创 劍指offer(12)數值的整數次方

題目描述 給定一個double類型的浮點數base和int類型的整數exponent。求base的exponent次方。 解題思路 代碼的完整性:考慮到各種意外的情況 這裏面的特殊情況主要是,base爲負數,exponent爲負數,b

原创 劍指offer(11)二進制中1的個數

題目描述 輸入一個整數,輸出該數二進制表示中1的個數。其中負數用補碼錶示。 解題思路 一個數,自身和自身減一與運算,會將右邊最後一個不爲1的變爲0,一直循環,直到變爲0; class Solution { public: i

原创 Leetcode(15)三數之和

題目描述 給定一個包含 n 個整數的數組 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?找出所有滿足條件且不重複的三元組。 注意:答案中不可以包含重複的三元組。 例如, 給定數組 nu

原创 Leetcode(12)整數轉羅馬數字

題目描述 羅馬數字包含以下七種字符: I, V, X, L,C,D 和 M。 字符 數值 I 1 V 5 X 10 L