原创 17. 電話號碼的字母組合

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

原创 15. 三數之和

多的不說,各種特殊情況加超時,噁心到了,頭疼 參考博客:https://blog.csdn.net/God_Mood/article/details/87081242

原创 27. 移除元素

題目: 給定一個數組 nums 和一個值 val,你需要原地移除所有數值等於 val 的元素,返回移除後數組的新長度。 不要使用額外的數組空間,你必須在原地修改輸入數組並在使用 O(1) 額外空間的條件下完成。 元素的順序可以改變。你不需

原创 23. 合併K個排序鏈表

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

原创 24. 兩兩交換鏈表中的節點

題目: 給定一個鏈表,兩兩交換其中相鄰的節點,並返回交換後的鏈表。 你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。   示例: 給定 1->2->3->4, 你應該返回 2->1->4->3. 思路: 考察鏈表的節點交換操

原创 19. 刪除鏈表的倒數第N個節點

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

原创 14. 最長公共前綴

題目: 編寫一個函數來查找字符串數組中的最長公共前綴。 如果不存在公共前綴,返回空字符串 ""。 示例 1: 輸入: ["flower","flow","flight"] 輸出: "fl" 示例 2: 輸入: ["dog","raceca

原创 21. 合併兩個有序鏈表

題目: 將兩個有序鏈表合併爲一個新的有序鏈表並返回。新鏈表是通過拼接給定的兩個鏈表的所有節點組成的。  示例: 輸入:1->2->4, 1->3->4 輸出:1->1->2->3->4->4 思路: 整體思路類似歸併排序,選擇兩個鏈表 l

原创 9.迴文數

題目: 判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: false 解釋: 從左向右讀, 爲 -121 。 從右

原创 11. 盛最多水的容器

題目: 給定 n 個非負整數 a1,a2,...,an,每個數代表座標中的一個點 (i, ai) 。在座標內畫 n 條垂直線,垂直線 i 的兩個端點分別爲 (i, ai) 和 (i, 0)。找出其中的兩條線,使得它們與 x 軸共同構成的容

原创 7.整數反轉

題目: 給定一個 32 位有符號整數,將整數中的數字進行反轉。 示例 1: 輸入: 123 輸出: 321  示例 2: 輸入: -123 輸出: -321 示例 3: 輸入: 120 輸出: 21 思路: 思路很簡單,首先考慮

原创 8. 字符串轉換整數 (atoi)

題目: 請你來實現一個 atoi 函數,使其能將字符串轉換成整數。 首先,該函數會根據需要丟棄無用的開頭空格字符,直到尋找到第一個非空格的字符爲止。 當我們尋找到的第一個非空字符爲正或者負號時,則將該符號與之後面儘可能多的連續數字組合起來

原创 6.Z字形變換

題目: 將一個給定字符串根據給定的行數,以從上往下、從左到右進行 Z 字形排列。 比如輸入字符串爲 "LEETCODEISHIRING" 行數爲 3 時,排列如下: L      C      I      R E  T O  E S 

原创 5.最長迴文子串的簡單解法

1.暴力法求解 時間複雜度O(n^3) 空間複雜度O(n) 代碼: class Solution { public String longestPalindrome(String s) { if(s.trim()

原创 3. 無重複字符的最長子串

題目: 給定一個字符串,請你找出其中不含有重複字符的 最長子串 的長度。 示例 1: 輸入: "abcabcbb" 輸出: 3 解釋: 因爲無重複字符的最長子串是 "abc",所以其長度爲 3。 示例 2: 輸入: "bbbbb"