原创 【劍指offer】58-2.左旋轉字符串

題目描述 字符串的左旋轉操作是把字符串前面的若干個字符轉移到字符串的尾部。請定義一個函數實現字符串左旋轉操作的功能。比如,輸入字符串"abcdefg"和數字2,該函數將返回左旋轉兩位得到的結果"cdefgab"。 示例 1: 輸

原创 【劍指offer】59-1.滑動窗口的最大值

題目描述 給定一個數組 nums 和滑動窗口的大小 k,請找出所有滑動窗口裏的最大值。 示例: 輸入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3 輸出: [3,3,5,5,6,7] 解釋:

原创 【劍指offer】58-1.翻轉單詞順序

題目描述 輸入一個英文句子,翻轉句子中單詞的順序,但單詞內字符的順序不變。爲簡單起見,標點符號和普通字母一樣處理。例如輸入字符串"I am a student. “,則輸出"student. a am I”。 示例 1: 輸入:

原创 【劍指offer】56-1.數組中數字出現的次數

題目描述 一個整型數組 nums 裏除兩個數字之外,其他數字都出現了兩次。請寫程序找出這兩個只出現一次的數字。要求時間複雜度是O(n),空間複雜度是O(1)。 示例 1: 輸入:nums = [4,1,4,6] 輸出:[1,6]

原创 【劍指offer】68-1.二插搜索樹的最近公共祖先

題目描述 給定一個二叉搜索樹, 找到該樹中兩個指定節點的最近公共祖先。 百度百科中最近公共祖先的定義爲:“對於有根樹 T 的兩個結點 p、q,最近公共祖先表示爲一個結點 x,滿足 x 是 p、q 的祖先且 x 的深度儘可能大(一個

原创 【劍指offer】53-2.0~n-1中缺失的數字

題目描述 一個長度爲n-1的遞增排序數組中的所有數字都是唯一的,並且每個數字都在範圍0~n-1之內。在範圍0~n-1內的n個數字中有且只有一個數字不在該數組中,請找出這個數字。 示例 1: 輸入: [0,1,3] 輸出: 2

原创 【劍指offer】55.二叉樹的深度

題目描述 輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點依次經過的節點(含根、葉節點)形成樹的一條路徑,最長路徑的長度爲樹的深度。 例如: 給定二叉樹 [3,9,20,null,null,15,7], 3 /

原创 【劍指offer】53-1.在排序數組中查找數字

題目描述 統計一個數字在排序數組中出現的次數。 示例 1: 輸入: nums = [5,7,7,8,8,10], target = 8 輸出: 2 示例 2: 輸入: nums = [5,7,7,8,8,10], target

原创 【劍指offer】52.兩個鏈表的第一個公共結點

題目描述 輸入兩個鏈表,找出它們的第一個公共節點。 如下面的兩個鏈表: 在節點 c1 開始相交。 示例 1: 輸入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8

原创 【劍指offer】54.二插搜索樹的第K大結點

題目描述 給定一棵二叉搜索樹,請找出其中第k大的節點。 示例 1: 輸入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \   2 輸出: 4 示例 2: 輸入: roo

原创 【劍指offer】55-2.平衡二叉樹

題目描述 輸入一棵二叉樹的根節點,判斷該樹是不是平衡二叉樹。如果某二叉樹中任意節點的左右子樹的深度相差不超過1,那麼它就是一棵平衡二叉樹。 示例 1: 給定二叉樹 [3,9,20,null,null,15,7] 3

原创 【劍指offer】50.第一個只出現一次的字符

題目描述 在字符串 s 中找出第一個只出現一次的字符。如果沒有,返回一個單空格。 s 只包含小寫字母。 示例: s = "abaccdeff" 返回 "b" s = "" 返回 " " 思路實現 public cha

原创 【劍指offer】46.把數字翻譯成字符串

題目描述 給定一個數字,我們按照如下規則把它翻譯爲字符串:0 翻譯成 “a” ,1 翻譯成 “b”,……,11 翻譯成 “l”,……,25 翻譯成 “z”。一個數字可能有多個翻譯。請編程實現一個函數,用來計算一個數字有多少種不同的

原创 【劍指offer】48.最長不含重複字符的子字符串

題目描述 請從字符串中找出一個最長的不包含重複字符的子字符串,計算該最長子字符串的長度。 示例 1: 輸入: "abcabcbb" 輸出: 3 解釋: 因爲無重複字符的最長子串是 "abc",所以其長度爲 3。 示例 2: 輸

原创 【劍指offer】45.把數組排成最小的數

題目描述 輸入一個非負整數數組,把數組裏所有數字拼接起來排成一個數,打印能拼接出的所有數字中最小的一個。 示例 1: 輸入: [10,2] 輸出: "102" 示例 2: 輸入: [3,30,34,5,9] 輸出: "30334