原创 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 輸出: