原创 Leetcode--x 的平方根

實現 int sqrt(int x) 函數。 計算並返回 x 的平方根,其中 x 是非負整數。 由於返回類型是整數,結果只保留整數的部分,小數部分將被捨去。 示例 1: 輸入: 4 輸出: 2 示例 2: 輸入: 8 輸出: 2 說明:

原创 Leetcode--鏈表相交

給定兩個(單向)鏈表,判定它們是否相交併返回交點。請注意相交的定義基於節點的引用,而不是基於節點的值。換句話說,如果一個鏈表的第k個節點與另一個鏈表的第j個節點是同一節點(引用完全相同),則這兩個鏈表相交。 示例 1: 輸入:inte

原创 Leetcode--最大正方形

在一個由 0 和 1 組成的二維矩陣內,找到只包含 1 的最大正方形,並返回其面積。 示例: 輸入:  1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 輸出: 4 思路 參考Leetcode題解,詳細解

原创 Leetcode--另一個樹的子樹

給定兩個非空二叉樹 s 和 t,檢驗 s 中是否包含和 t 具有相同結構和節點值的子樹。s 的一個子樹包括 s 的一個節點和這個節點的所有子孫。s 也可以看做它自身的一棵子樹。 示例 1: 給定的樹 s:      3     / \

原创 Leetcode-- 迴文鏈表

編寫一個函數,檢查輸入的鏈表是否是迴文的。   示例 1: 輸入: 1->2 輸出: false  示例 2: 輸入: 1->2->2->1 輸出: true    進階: 你能否用 O(n) 時間複雜度和 O(1) 空間複雜度解決此題

原创 Leetcode--驗證二叉搜索樹

給定一個二叉樹,判斷其是否是一個有效的二叉搜索樹。 假設一個二叉搜索樹具有如下特徵: 節點的左子樹只包含小於當前節點的數。 節點的右子樹只包含大於當前節點的數。 所有左子樹和右子樹自身必須也是二叉搜索樹。 示例 1: 輸入:     2

原创 Leetcode--跳躍遊戲 II

給定一個非負整數數組,你最初位於數組的第一個位置。 數組中的每個元素代表你在該位置可以跳躍的最大長度。 你的目標是使用最少的跳躍次數到達數組的最後一個位置。 示例: 輸入: [2,3,1,1,4] 輸出: 2 解釋: 跳到最後一個位置的

原创 Leetcode--生存人數

給定N個人的出生年份和死亡年份,第i個人的出生年份爲birth[i],死亡年份爲death[i],實現一個方法以計算生存人數最多的年份。 你可以假設所有人都出生於1900年至2000年(含1900和2000)之間。如果一個人在某一年的任

原创 Leetcode--最大子序和

給定一個整數數組 nums ,找到一個具有最大和的連續子數組(子數組最少包含一個元素),返回其最大和。 示例: 輸入: [-2,1,-3,4,-1,2,1,-5,4], 輸出: 6 解釋: 連續子數組 [4,-1,2,1] 的和最大,爲

原创 Leetcode--分隔鏈表

給定一個鏈表和一個特定值 x,對鏈表進行分隔,使得所有小於 x 的節點都在大於或等於 x 的節點之前。 你應當保留兩個分區中每個節點的初始相對位置。 示例: 輸入: head = 1->4->3->2->5->2, x = 3 輸出:

原创 Leetcode--最小差

給定兩個整數數組a和b,計算具有最小差絕對值的一對數值(每個數組中取一個值),並返回該對數值的差 示例: 輸入:{1, 3, 15, 11, 2}, {23, 127, 235, 19, 8} 輸出: 3,即數值對(11, 8) 提示:

原创 Leetcode--遞歸乘法

遞歸乘法。 寫一個遞歸函數,不使用 * 運算符, 實現兩個正整數的相乘。可以使用加號、減號、位移,但要吝嗇一些。 示例1:  輸入:A = 1, B = 10  輸出:10 示例2:  輸入:A = 3, B = 4  輸出:12 提示

原创 Leetcode--無重複字符串的排列組合

無重複字符串的排列組合。編寫一種方法,計算某字符串的所有排列組合,字符串每個字符均不相同。 示例1:  輸入:S = "qwe"  輸出:["qwe", "qew", "wqe", "weq", "ewq", "eqw"] 示例2:  

原创 牛客網--字符集合

輸入一個字符串,求出該字符串包含的字符集合   輸入描述: 每組數據輸入一個字符串,字符串最大長度爲100,且只包含字母,不可能爲空串,區分大小寫。   輸出描述: 每組數據一行,按字符串原有的字符順序,輸出字符集合,即重複出現並靠

原创 Leetcode-- 合法二叉搜索樹

實現一個函數,檢查一棵二叉樹是否爲二叉搜索樹。 示例 1: 輸入:     2    / \   1   3 輸出: true 示例 2: 輸入:     5    / \   1   4      / \     3   6 輸出: