原创 71. 簡化路徑

以 Unix 風格給出一個文件的絕對路徑,你需要簡化它。或者換句話說,將其轉換爲規範路徑。 在 Unix 風格的文件系統中,一個點(.)表示當前目錄本身;此外,兩個點 (..) 表示將目錄切換到上一級(指向父目錄);兩者都可以是複雜相對路

原创 999. 車的可用捕獲量

在一個 8 x 8 的棋盤上,有一個白色車(rook)。也可能有空方塊,白色的象(bishop)和黑色的卒(pawn)。它們分別以字符 “R”,“.”,“B” 和 “p” 給出。大寫字符表示白棋,小寫字符表示黑棋。 車按國際象棋中的規則移

原创 30. 串聯所有單詞的子串

給定一個字符串 s 和一些長度相同的單詞 words。找出 s 中恰好可以由 words 中所有單詞串聯形成的子串的起始位置。 注意子串要與 words 中的單詞完全匹配,中間不能有其他字符,但不需要考慮 words 中單詞串聯的順序。

原创 682. 棒球比賽

你現在是棒球比賽記錄員。 給定一個字符串列表,每個字符串可以是以下四種類型之一: 1.整數(一輪的得分):直接表示您在本輪中獲得的積分數。 2. "+"(一輪的得分):表示本輪獲得的得分是前兩輪有效 回合得分的總和。 3. "D"(一輪的

原创 32. 最長有效括號

給定一個只包含 '(' 和 ')' 的字符串,找出最長的包含有效括號的子串的長度。 示例 1: 輸入: "(()" 輸出: 2 解釋: 最長有效括號子串爲 "()" 示例 2: 輸入: ")()())" 輸出: 4 解釋: 最長有效

原创 45. 跳躍遊戲 II

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

原创 166. 分數到小數

給定兩個整數,分別表示分數的分子 numerator 和分母 denominator,以字符串形式返回小數。 如果小數部分爲循環小數,則將循環的部分括在括號內。 示例 1: 輸入: numerator = 1, denominator

原创 754. 到達終點數字

在一根無限長的數軸上,你站在0的位置。終點在target的位置。 每次你可以選擇向左或向右移動。第 n 次移動(從 1 開始),可以走 n 步。 返回到達終點需要的最小移動次數。 示例 1: 輸入: target = 3 輸出: 2 解

原创 335. 路徑交叉

給定一個含有 n 個正數的數組 x。從點 (0,0) 開始,先向北移動 x[0] 米,然後向西移動 x[1] 米,向南移動 x[2] 米,向東移動 x[3] 米,持續移動。也就是說,每次移動後你的方位會發生逆時針變化。 編寫一個 O(1)

原创 791. 自定義字符串排序

字符串S和 T 只包含小寫字符。在S中,所有字符只會出現一次。 S 已經根據某種規則進行了排序。我們要根據S中的字符順序對T進行排序。更具體地說,如果S中x在y之前出現,那麼返回的字符串中x也應出現在y之前。 返回任意一種符合條件的字符串

原创 258. 各位相加

給定一個非負整數 num,反覆將各個位上的數字相加,直到結果爲一位數。 示例: 輸入: 38 輸出: 2 解釋: 各位相加的過程爲:3 + 8 = 11, 1 + 1 = 2。 由於 2 是一位數,所以返回 2。 進階: 你可以不使

原创 696. 計數二進制子串

給定一個字符串 s,計算具有相同數量0和1的非空(連續)子字符串的數量,並且這些子字符串中的所有0和所有1都是組合在一起的。 重複出現的子串要計算它們出現的次數。 示例 1 : 輸入: "00110011" 輸出: 6 解釋: 有6個子

原创 812. 最大三角形面積

給定包含多個點的集合,從其中取三個點組成三角形,返回能組成的最大三角形的面積。 示例: 輸入: points = [[0,0],[0,1],[1,0],[0,2],[2,0]] 輸出: 2 解釋: 這五個點如下圖所示。組成的橙色三角形

原创 496. 下一個更大元素 I

給定兩個沒有重複元素的數組 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每個元素在 nums2 中的下一個比其大的值。 nums1 中數字 x 的下一個更大元素是指 x 在 nums2 中對應

原创 880. 索引處的解碼字符串

給定一個編碼字符串 S。爲了找出解碼字符串並將其寫入磁帶,從編碼字符串中每次讀取一個字符,並採取以下步驟: 如果所讀的字符是字母,則將該字母寫在磁帶上。 如果所讀的字符是數字(例如 d),則整個當前磁帶總共會被重複寫 d-1 次。 現在,