/** * @brief 給定一個數組nums,將所有的0移動到數組的末尾,同時保留非0元素的相對順序; * @param nums */ void moveZeros(vector<int>& nums){ int i = 0,poz ...
題目: 移動零:給定一個數組 nums,編寫一個函數將所有 移動到數組的末尾,同時保持非零元素的相對順序。 示例: 說明: 必須在原數組上操作,不能拷貝額外的數組。 盡量減少操作次數。 思路: 思路較簡單。 程序: class Solution: def moveZeroes self, nums: List int gt None: Do not return anything, modify ...
2020-05-27 13:03 0 1092 推薦指數:
/** * @brief 給定一個數組nums,將所有的0移動到數組的末尾,同時保留非0元素的相對順序; * @param nums */ void moveZeros(vector<int>& nums){ int i = 0,poz ...
題目: 滑動窗口最大值:給定一個數組 nums,有一個大小為 k 的滑動窗口從數組的最左側移動到數組的最右側。你只可以看到在滑動窗口內的 k 個數字。滑動窗口每次只向右移動一位。 返回滑動窗口中的最大值。 進階: 你能在線性時間復雜度內解決此題嗎? 示例: 輸入: nums ...
題目: 給定一個數組,將數組中的元素向右移動 k 個位置,其中 k 是非負數。 說明: 盡可能想出更多的解決方案,至少有三種不同的方法可以解決這個問題。 要求使用空間復雜度為 O(1) 的 原地 算法。 思路: 本題思路簡單 ...
題目: 兩個數組的交集:給定兩個數組,編寫一個函數來計算它們的交集。 示例 1: 輸入: nums1 = [1,2,2,1], nums2 = [2,2]輸出: [2]示例 2: 輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]輸出: [9,4]說明 ...
題目: 峰值元素是指其值大於左右相鄰值的元素。 給定一個輸入數組 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素並返回其索引。 數組可能包含多個峰值,在這種情況下,返回任何一個峰值所在位置即可。 你可以假設 nums[-1] = nums[n] = -∞。 說明 ...
題目: 給定一個正整數 n,生成一個包含 1 到 n2 所有元素,且元素按順時針順序螺旋排列的正方形矩陣。 思路: 是第54題的逆向過程 程序: class Solution ...
題目: 區域和檢索 - 數組不可變:給定一個整數數組 nums,求出數組從索引 i 到 j (i ≤ j) 范圍內元素的總和,包含 i, j 兩點。 示例: 給定 nums = [-2, 0, 3, -5, 2, -1],求和函數為 sumRange() sumRange ...
題目: 給定一個 m x n 的矩陣,如果一個元素為 0,則將其所在行和列的所有元素都設為 0。請使用原地算法。 思路: 進階: 一個直接的解決方案是使用 O(mn) 的額外空間,但這並不是一個好的解決方案。一個簡單的改進方案是使用 O(m + n) 的額外空間 ...