原创 解碼方法(Python3)

問題描述:一條包含字母 A-Z 的消息通過以下方式進行了編碼: 'A' -> 1'B' -> 2...'Z' -> 26 給定一個只包含數字的非空字符串,請計算解碼方法的總數。 示例 1:輸入: "12"輸出: 2解釋: 它可以解碼爲 "A

原创 不同路徑(Python3)

問題描述:一個機器人位於一個 m x n 網格的左上角 (起始點在下圖中標記爲“Start” )。機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角(在下圖中標記爲“Finish”)。問總共有多少條不同的路徑? 示例:輸入: m

原创 爬樓梯(Python3)

假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個臺階。你有多少種不同的方法可以爬到樓頂呢?注意:給定 n 是一個正整數。 示例 1:輸入: 2輸出: 2解釋: 有兩種方法可以爬到樓頂。1 階 + 1 階 和 2 階

原创 組合總和(Python3)

題目描述:給定一個無重複元素的數組 candidates 和一個目標數 target ,找出candidates 中所有可以使數字和爲 target 的組合。candidates 中的數字可以無限制重複被選取。說明:所有數字(包括 targ

原创 全排列(Python3)

題目描述:給定一個沒有重複數字的序列,返回其所有可能的全排列。 示例:輸入: [1,2,3]輸出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 解題思路: 代碼如下: class Sol

原创 最長迴文子串(Python3)

問題描述:給定一個字符串 s,找到 s 中最長的迴文子串。你可以假設 s 的最大長度爲 1000。示例:輸入: "babad"輸出: "bab"注意: "aba" 也是一個有效答案。 解決思路:從字符串的第一個字符開始遍歷到最後一個字符,判

原创 大數據概論

大數據自學筆記 1.大數據興起 第三次信息化浪潮。核心技術雲計算、大數據、物聯網 (第一次信心化浪潮伴隨着個人計算機的出現,第二次信息化浪潮伴隨着互聯網的普及) 2.大數據前提條件 (1)硬件支持:CPU、存儲空間、網絡帶寬的增加 (2)數

原创 雲計算概論

雲計算基本概念 雲計算是一種商業計算模型,他將計算任務分佈在大量計算機構成的資源池上,使各種應用系統能夠根據需要獲取計算力、存儲空間和信息服務。 NIST定義:雲計算是一種無處不在、便捷且按需對一個共享的可配置計算資源機型網絡訪問的模式,它

原创 無重複字符的最長子串(Python3)

提出問題:給定一個字符串,請你找出其中不含有重複字符的最長子串的長度。 示例:"abbcc" --> "ab" or "bc"、"abcadef" --> "adef" 解決思路:使用蠻力算法算法很容易實現,但是時間複雜度爲O(n^2)。本

原创 兩數相加(Python3)

提出問題:給出兩個非空的鏈表用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式存儲的,並且它們的每個節點只能存儲一位數字。如果,我們將這兩個數相加起來,則會返回一個新的鏈表來表示它們的和。您可以假設除了數字 0 之外,這兩個數

原创 將二叉搜索樹換爲累加樹(Python3)

提出問題:給定一個二叉搜索樹(Binary Search Tree),把它轉換成爲累加樹(Greater Tree),使得每個節點的值是原來的節點值加上所有大於它的節點值之和。 解決思路:使用新的遍歷方式(右子樹,根、左子樹)遍歷整棵樹。

原创 合併兩個有序鏈表(Python3)

提出問題:將兩個有序鏈表合併爲一個新的有序鏈表並返回。新鏈表是通過拼接給定的兩個鏈表的所有節點組成的。 示例:輸入:1->2->4, 1->3->4輸出:1->1->2->3->4->4 解決思路:合併鏈表很簡單,設置兩個指針遍歷兩個鏈表,

原创 最簡單、詳細樸素貝葉斯算法原理

樸素貝葉斯的原理歸根結底就是使用先驗概率去計算後驗概率。有關先驗概率和後驗概率請參考先驗概率和後驗概率最簡單理解。 1.假設有一數據集X,包含X1到Xn條數據,每條數據包含m個特徵(m維),可以表示爲: $$ X_1:X_1^1、X_1^2

原创 求衆數(Python3)

提出問題:給定一個大小爲 n 的數組,找到其中的衆數。衆數是指在數組中出現次數大於 ⌊ n/2 ⌋ 的元素。你可以假設數組是非空的,並且給定的數組總是存在衆數。 解決思路:判斷衆數實則是判斷重複元素的個數。遇到重複元素首先考慮字典。字典ke

原创 只出現一次的數字(Python3)不使用額外空間

提出問題:給定一個非空整數數組,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。要求:你的算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 解題思路:使用異或運算解決。異或運算規則:1.相同數字進