LeetCode - Word Break(單詞拆分)
題目描述 給定一個字符串 s 和一個字符串數組 wordDict,判斷是否可以將字符串 s 拆分為一個或多個在 wordDict 中的單詞。 範例: 輸入:s = "leetcode", wordDict = ["leet", "code"] 輸出:true 解釋:返回 true,因為 "leetcode" 可以拆分為 "leet" 和 "code"。 輸入:s = "applepen...
題目描述 給定一個字符串 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 枚硬幣。 輸...
題目描述 假設你正在爬一個樓梯。需要 n 步才能到達樓頂。每次你可以爬 1 或 2 步。問有多少種不同的方法可以爬到樓頂? 範例: 輸入:n = 2 輸出:2 解釋:有兩種方法可以爬到頂端。 1. 1 步 + 1 步 2. 2 步 輸入:n = 3 輸出:3 解釋:有三種方法可以爬到頂端。 1. 1 步 + 1 步 + 1 步 2. 1 步 + 2 步 3. 2 步 + 1 步 限...
題目描述 給定兩個大小分別為 m 和 n 的排序數組 nums1 和 nums2,請找出這兩個排序數組的中位數,並要求算法的時間複雜度為 O(log(min(m, n)))。 範例: 輸入:nums1 = [1, 3], nums2 = [2] 輸出:2.0 輸入:nums1 = [1, 2], nums2 = [3, 4] 輸出:2.5 限制: nums1 和 nums2 ...
題目描述 給定一個已按升序排列的整數數組 nums,它被旋轉過一次或多次。給定一個目標值 target,如果目標值存在於數組中,則返回其索引;否則返回 -1。你可以假定數組中的所有值是唯一的。 範例: 輸入:nums = [4,5,6,7,0,1,2], target = 0 輸出:4 輸入:nums = [4,5,6,7,0,1,2], target = 3 輸出:-1 輸入:nu...
題目描述 給定一個已經按照升序排序但旋轉過的整數數組 nums,請找出其中的最小值。假設該數組中的元素不重複。 範例: 輸入:nums = [3,4,5,1,2] 輸出:1 輸入:nums = [4,5,6,7,0,1,2] 輸出:0 輸入:nums = [11,13,15,17] 輸出:11 限制: 1 <= nums.length <= 5000 -50...
題目描述 給定一個 m x n 的矩陣 matrix 和一個整數 target,在矩陣中搜索該目標值。該矩陣有以下特性: 每行中的整數從左到右排序。 每行的第一個整數大於前一行的最後一個整數。 要求實現時間複雜度為 O(log(m * n)) 的算法。 範例: 輸入:matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, ...
題目描述 給定一個按升序排序的整數數組 nums 和一個目標值 target,如果目標值存在於數組中,則返回其索引;否則返回 -1。請實現時間複雜度為 O(log n) 的算法。 範例: 輸入:nums = [-1,0,3,5,9,12], target = 9 輸出:4 解釋:9 出現在 nums 中並且索引為 4 輸入:nums = [-1,0,3,5,9,12], target ...