原创 225用隊列實現棧(隊列)

1、題目描述 使用隊列實現棧的下列操作: push(x) -- 元素 x 入棧 pop() -- 移除棧頂元素 top() -- 獲取棧頂元素 empty() -- 返回棧是否爲空 注意: 你只能使用隊列的基本操作-- 也就是 push

原创 224基本計算器(棧——先計算後入棧、先入棧後計算)

1、題目描述 實現一個基本的計算器來計算一個簡單的字符串表達式的值。 字符串表達式可以包含左括號 ( ,右括號 ),加號 + ,減號 -,非負整數和空格  。 說明: 你可以假設所給定的表達式都是有效的。 請不要使用內置的庫函數 eval

原创 223矩形面積(數學)

1、題目描述 在二維平面上計算出兩個由直線構成的矩形重疊後形成的總面積。 每個矩形由其左下頂點和右上頂點座標表示,如圖所示。 說明: 假設矩形面積不會超出 int 的範圍。 2、示例 輸入: -3, 0, 3, 4, 0, -1, 9,

原创 222完全二叉樹的節點個數(遞歸、層次遍歷)

1、給出一個完全二叉樹,求出該樹的節點個數。 說明: 完全二叉樹的定義如下:在完全二叉樹中,除了最底層節點可能沒填滿外,其餘每層節點數都達到最大值,並且最下面一層的節點都集中在該層最左邊的若干位置。若最底層爲第 h 層,則該層包含 1~ 

原创 219存在重複元素 II(HashMap、哈希表+滑動窗口)

1、題目描述 給定一個整數數組和一個整數 k,判斷數組中是否存在兩個不同的索引 i 和 j,使得 nums [i] = nums [j],並且 i 和 j 的差的 絕對值 至多爲 k。 2、示例  輸入: nums = [1,2,3,1]

原创 221最大正方形(動態規劃、廣度優先搜索)

1、題目描述 在一個由 0 和 1 組成的二維矩陣內,找到只包含 1 的最大正方形,並返回其面積。 2、示例 輸入:  1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 輸出: 4 3、題解 解法一: 基本思

原创 226翻轉二叉樹(遞歸、迭代)

1、題目描述 翻轉一棵二叉樹。 2、示例 輸入:      4    /   \   2     7  / \     / \ 1   3 6   9 輸出:      4    /   \   7     2  / \     / \

原创 218天際線問題(掃描線算法:建立合適的數據結構哈希表——困難)

1、題目描述 城市的天際線是從遠處觀看該城市中所有建築物形成的輪廓的外部輪廓。現在,假設您獲得了城市風光照片(圖A)上顯示的所有建築物的位置和高度,請編寫一個程序以輸出由這些建築物形成的天際線(圖B)。              每個建築

原创 220存在重複元素 III(滑動窗口+哈希表)

1、題目描述 在整數數組 nums 中,是否存在兩個下標 i 和 j,使得 nums [i] 和 nums [j] 的差的絕對值小於等於 t ,且滿足 i 和 j 的差的絕對值也小於等於 ķ 。 如果存在則返回 true,不存在返回 fa

原创 217存在重複元素(哈希表)

1、題目描述 給定一個整數數組,判斷是否存在重複元素。 如果任意一值在數組中出現至少兩次,函數返回 true 。如果數組中每個元素都不相同,則返回 false 。 2、示例 輸入: [1,2,3,1] 輸出: true 3、題解 基本思想

原创 216組合總和 III(深度優先搜索遞歸回溯)

1、題目描述 找出所有相加之和爲 n 的 k 個數的組合。組合中只允許含有 1 - 9 的正整數,並且每種組合中不存在重複的數字。 說明: 所有數字都是正整數。 解集不能包含重複的組合。  2、示例 輸入: k = 3, n = 9 輸出

原创 215數組中的第K個最大元素(堆排序)

1、題目描述 在未排序的數組中找到第 k 個最大的元素。請注意,你需要找的是數組排序後的第 k 個最大的元素,而不是第 k 個不同的元素。 說明:你可以假設 k 總是有效的,且 1 ≤ k ≤ 數組的長度。 2、示例 輸入: [3,2,3

原创 214最短迴文串(KMP算法——困難)

1、題目描述 給定一個字符串 s,你可以通過在字符串前面添加字符將其轉換爲迴文串。找到並返回可以用這種方式轉換的最短迴文串。 2、示例 輸入: "aacecaaa" 輸出: "aaacecaaa" 3、題解 問題可以簡化爲從s的開頭尋找最

原创 213打家劫舍 II(動態規劃)

1、題目描述 你是一個專業的小偷,計劃偷竊沿街的房屋,每間房內都藏有一定的現金。這個地方所有的房屋都圍成一圈,這意味着第一個房屋和最後一個房屋是緊挨着的。同時,相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統

原创 162尋找峯值(折半查找)

1、題目描述 峯值元素是指其值大於左右相鄰值的元素。 給定一個輸入數組 nums,其中 nums[i] ≠ nums[i+1],找到峯值元素並返回其索引。 數組可能包含多個峯值,在這種情況下,返回任何一個峯值所在位置即可。 你可以假設 n