LeetCode - Climbing Stairs(爬樓梯)
題目描述 假設你正在爬一個樓梯。需要 n 步才能到達樓頂。每次你可以爬 1 或 2 步。問有多少種不同的方法可以爬到樓頂? 範例: 輸入:n = 2 輸出:2 解釋:有兩種方法可以爬到頂端。 1. 1 步 + 1 步 2. 2 步 輸入:n = 3 輸出:3 解釋:有三種方法可以爬到頂端。 1. 1 步 + 1 步 + 1 步 2. 1 步 + 2 步 3. 2 步 + 1 步 限...
題目描述 假設你正在爬一個樓梯。需要 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 ...
題目描述 給定 k 個排序的鏈表,將它們合併成一個排序鏈表,並返回該排序鏈表的頭節點。 範例: 輸入:lists = [[1,4,5],[1,3,4],[2,6]] 輸出:[1,1,2,3,4,4,5,6] 解釋:所有鏈表合併後變成 [1,1,2,3,4,4,5,6] 輸入:lists = [] 輸出:[] 輸入:lists = [[]] 輸出:[] 限制: k == li...
題目描述 實現一個 MedianFinder 類,用於從數據流中找到中位數。支持以下兩種操作: void addNum(int num):從數據流中加入一個整數 num。 double findMedian():返回當前所有元素的中位數。 說明: 如果數據流中的元素數量是奇數,則中位數為中間元素。 如果數據流中的元素數量是偶數,則中位數為中間兩個元素的平均值。 範...
題目名稱: 題目描述 給定一個未排序的整數數組 nums 和一個整數 k,請返回數組中第 k 大的元素。 注意:必須在 O(N) 的時間內完成,適合使用快速選擇(Quickselect)算法。 範例: 輸入:nums = [3,2,1,5,6,4], k = 2 輸出:5 輸入:nums = [3,2,3,1,2,4,5,5,6], k = 4 輸出:4 限制: 1 &l...
題目描述 給定一個整數數組 nums 和一個整數 k,返回出現頻率最高的 k 個元素。返回的答案可以按任意順序排列。 範例: 輸入:nums = [1,1,1,2,2,3], k = 2 輸出:[1,2] 輸入:nums = [1], k = 1 輸出:[1] 限制: 1 <= nums.length <= 10^5 k 的範圍是 [1, the number...