LeetCode - Gas Station(加油站)
題目描述 在一條圓形路線上有 n 個加油站,其中第 i 個加油站的汽油量是 gas[i]。你有一輛油箱無限大的汽車,它從第 i 個加油站到第 i + 1 個加油站所需要的汽油量是 cost[i]。你必須從某個加油站出發,並且沿著順時針方向走一圈。如果可以走完整圈,返回出發的加油站的索引(從 0 開始),否則返回 -1。 範例: 輸入:gas = [1,2,3,4,5], cost = [...
題目描述 在一條圓形路線上有 n 個加油站,其中第 i 個加油站的汽油量是 gas[i]。你有一輛油箱無限大的汽車,它從第 i 個加油站到第 i + 1 個加油站所需要的汽油量是 cost[i]。你必須從某個加油站出發,並且沿著順時針方向走一圈。如果可以走完整圈,返回出發的加油站的索引(從 0 開始),否則返回 -1。 範例: 輸入:gas = [1,2,3,4,5], cost = [...
題目描述 給定一個由非負整數組成的數組 nums,其中 nums[i] 表示在位置 i 可以跳躍的最遠距離。你的目標是判斷是否可以從數組的起始位置跳到最後一個位置。如果可以到達,返回 True;否則,返回 False。 範例: 輸入:nums = [2,3,1,1,4] 輸出:True 解釋:從位置 0 開始跳 1 步到達位置 1,然後跳 3 步到達最後位置。 輸入:nums = [...
題目描述 給定一個 m x n 的矩陣 heights,其中 heights[r][c] 表示地形在位置 (r, c) 的高度。矩陣的左邊界和上邊界與太平洋相鄰,右邊界和下邊界與大西洋相鄰。水可以從高地流向低地或等高的相鄰格子。找出所有可以流向太平洋和大西洋的坐標點。 範例: 輸入:heights = [ [1,2,2,3,5], [3,2,3,4,4], [2,4,5,3,...
題目描述 給定兩個單詞 beginWord 和 endWord,以及一個字典列表 wordList。你的目標是將 beginWord 逐步轉換為 endWord,每次轉換只能改變單詞中的一個字母,並且轉換後的單詞必須存在於 wordList 中。求出從 beginWord 到 endWord 的最短轉換序列的長度。如果無法到達 endWord,返回 0。 範例: 輸入:beginWord...
題目描述 給定一個無向連通圖的引用,請你返回該圖的深拷貝(克隆)。圖中的每個節點包含一個唯一的值 val 和一個列表 neighbors,表示與其相鄰的節點。 例子: 輸入:adjList = [[2,4],[1,3],[2,4],[1,3]] 輸出:[[2,4],[1,3],[2,4],[1,3]] 解釋: 1 -- 2 | | 4 -- 3 原圖表示一個四個節點的無向連通圖,其...
題目描述 給定一個 m x n 的二維二進制網格 grid,其中 1 表示陸地,0 表示水。島嶼由相鄰的陸地單元格(水平或垂直相連)組成。求出網格中島嶼的數量。 範例: 輸入: grid = [ ["1","1","0","0","0"], ["1","1","0","0","0"], ["0","0","1","0","0"], ["0","0","0","1","1"...
題目描述 給定一個字符串 s 和一個字符串數組 wordDict,判斷是否可以將字符串 s 拆分為一個或多個在 wordDict 中的單詞。 範例: 輸入:s = "leetcode", wordDict = ["leet", "code"] 輸出:true 解釋:返回 true,因為 "leetcode" 可以拆分為 "leet" 和 "code"。 輸入:s = "applepen...
題目描述 給定一個整數數組 nums,請你找出其中的最長遞增子序列的長度。 遞增子序列 是一個子序列,其中所有元素都是遞增的,即對於任意的 i < j,都有 nums[i] < nums[j]。 範例: 輸入:nums = [10, 9, 2, 5, 3, 7, 101, 18] 輸出:4 解釋:最長的遞增子序列是 [2, 3, 7, 101],其長度為 4。 輸入:nu...
題目描述 你是一名小偷,計劃打劫一排相鄰的房子。每棟房子內都有一筆金錢,但相鄰的房子有保全系統,若你同時打劫相鄰的房子,會觸發警報。給定一個整數數組 nums,代表每棟房子內的金額,請你計算出你能夠打劫到的最大金額。 範例: 輸入:nums = [1, 2, 3, 1] 輸出:4 解釋:偷竊第 1 和第 3 棟房子(1 + 3 = 4)。 輸入:nums = [2, 7, 9, 3, ...
題目描述 給定一個整數數組 coins,其中每個元素代表一種硬幣的面值,以及一個整數 amount,表示總金額。請找出可以用硬幣湊出這個總金額所需的最少硬幣數。如果無法湊出該金額,則返回 -1。 你可以認為每種硬幣的數量是無限的。 範例: 輸入:coins = [1, 2, 5], amount = 11 輸出:3 解釋:11 = 5 + 5 + 1,所以最少需要 3 枚硬幣。 輸...