原创 Lintcode: 餘弦相似度

問題: 餘弦相似性是內積空間的兩個矢量之間的相似性的度量,其測量它們之間的角度的餘弦。 0° 的餘弦爲 1,對於任何其他角度,餘弦小於 1。 Wiki 鏈接: Cosine Similarity 這裏給出公式: 給你兩個相同大小的向量 

原创 Lintcode: 不同島嶼的個數

問題: 給定一個由0和1組成的非空的二維網格,一個島嶼是指四個方向(包括橫向和縱向)都相連的一組1(1表示陸地)。你可以假設網格的四個邊緣都被水包圍。 找出所有不同的島嶼的個數。如果一個島嶼與另一個島嶼形狀相同(不考慮旋轉和翻折),我們認

原创 Lintcode:島嶼的個數

問題: 給一個 01 矩陣,求不同的島嶼的個數。 0 代表海,1 代表島,如果兩個 1 相鄰,那麼這兩個 1 屬於同一個島。我們只考慮上下左右爲相鄰。 樣例: Example 1: Input: [ [1,1,0,0,0],

原创 Lintcode:報數

問題: 報數指的是,按照其中的整數的順序進行報數,然後得到下一個數。如下所示: 1, 11, 21, 1211, 111221, ... 1 讀作 "one 1" -> 11 11 讀作 "two 1s" -> 21 21 讀作 "one

原创 Lintcode:最後一個單詞的長度

問題: 給定一個字符串, 包含大小寫字母、空格 ' ',請返回其最後一個單詞的長度。 如果不存在最後一個單詞,請返回 0 。 樣例: 樣例 1: 輸入:"Hello World" 輸出:5 樣例 2: 輸入:"Hello Lint

原创 Lintcode:有效的括號序列

問題: 給定一個字符串所表示的括號序列,包含以下字符: '(', ')', '{', '}', '[' and ']', 判定是否是有效的括號序列。 括號必須依照 "()" 順序表示, "()[]{}"是有效的括號,但 "([)]" 則是

原创 Lintcode:二進制求和

問題: 給定兩個二進制字符串,返回他們的和(用二進制表示)。 樣例: 樣例 1: 輸入: a = "0", b = "0" 輸出: "0" 樣例 2: 輸入: a = "11", b = "1" 輸出: "100" python

原创 Lintcode:反轉整數

問題: 將一個整數中的數字進行顛倒,當顛倒後的整數溢出時,返回 0 (標記爲 32 位整數)。 樣例: 樣例 1: 輸入:123 輸出:321 樣例 2: 輸入:-123 輸出:-321 python: class Solut

原创 Lintcode:判斷數獨是否合法

問題: 請判定一個數獨是否有效。 該數獨可能只填充了部分數字,其中缺少的數字用 .表示。 樣例: 樣例1: 輸入: ["53..7....","6..195...",".98....6.","8...6...3","4..8.3..1"

原创 Lintcode:奇偶分割數組

問題: 分割一個整數數組,使得奇數在前偶數在後。 樣例: 樣例1: 輸入: [1,2,3,4] 輸出: [1,3,2,4] 樣例2: 輸入: [1,4,2,3,5,6] 輸出: [1,3,5,4,2,6] python: c

原创 Lintcode:加一

問題: 給定一個非負數,表示一個數字數組,在該數的基礎上+1,返回一個新的數組。 該數字按照數位高低進行排列,最高位的數在列表的最前面。 樣例: 樣例 1: 輸入:[1,2,3] 輸出:[1,2,4] 樣例 2: 輸入:[9,9,

原创 Lintcode:用棧模擬漢諾塔問題

問題: 在經典的漢諾塔問題中,有 3 個塔和 N 個可用來堆砌成塔的不同大小的盤子。要求盤子必須按照從小到大的順序從上往下堆 (如,任意一個盤子,其必須堆在比它大的盤子上面)。同時,你必須滿足以下限制條件: (1) 每次只能移動一個盤子。

原创 Lintcode:矩陣的之字型遍歷

問題: 給你一個包含 m x n 個元素的矩陣 (m 行, n 列), 求該矩陣的之字型遍歷。 樣例: 樣例 1: 輸入: [[1]] 輸出: [1] 樣例 2: 輸入: [ [1, 2, 3, 4],

原创 Lintcode:克隆二叉樹

問題: 深度複製一個二叉樹。 給定一個二叉樹,返回一個他的 克隆品 。 樣例: 樣例1: 輸入: {1,2,3,4,5} 輸出: {1,2,3,4,5} 解釋: 樣例中二叉樹如下所示: 1 / \ 2 3

原创 Lintcode:翻轉二叉樹

問題: 翻轉一棵二叉樹。左右子樹交換。 樣例: 樣例 1: 輸入: {1,3,#} 輸出: {1,#,3} 解釋: 1 1 / => \ 3 3 樣例 2: 輸入: {1,2,3,#,#,4}