Leetcode練習(Python):數組類:第189題:給定一個數組,將數組中的元素向右移動 k 個位置,其中 k 是非負數。


題目:
給定一個數組,將數組中的元素向右移動 k 個位置,其中 k 是非負數。

說明:

  • 盡可能想出更多的解決方案,至少有三種不同的方法可以解決這個問題。
  • 要求使用空間復雜度為 O(1) 的 原地 算法。
思路:
本題思路簡單。
程序:
class Solution:
    def rotate(self, nums: List[int], k: int) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        length = len(nums)
        if k == 0:
            return 
        index = k
        target = length - 1
        while k > 0:
            data = nums[target]
            nums.insert(0,nums.pop())
            k -= 1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找 Leetcode練習(Python):滑動窗口:第239題:滑動窗口最大值:給定一個數組 nums,有一個大小為 k 的滑動窗口從數組的最左側移動到數組的最右側。你只可以看到在滑動窗口內的 k 個數字。滑動窗口每次只向右移動一位。 返回滑動窗口中的最大值。 Leetcode練習(Python):數組類:第55題:給定一個非負整數數組,你最初位於數組的第一個位置。 數組中的每個元素代表你在該位置可以跳躍的最大長度。 判斷你是否能夠到達最后一個位置。 Leetcode練習(Python):數組類:第73題:給定一個 m x n 的矩陣,如果一個元素為 0,則將其所在行和列的所有元素都設為 0。請使用原地算法。 Leetcode練習(Python) :數組類:第62題:一個機器人位於一個 m x n 網格的左上角 (起始點在下圖中標記為“Start” )。 機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角(在下圖中標記為“Finish”)。 問總共有多少條不同的路徑? Leetcode練習(python):分治算法類:第215題:數組中的第K個最大元素:在未排序的數組中找到第 k 個最大的元素。請注意,你需要找的是數組排序后的第 k 個最大的元素,而不是第 k 個不同的元素。 Leetcode練習(Python):數組類:第63題:一個機器人位於一個 m x n 網格的左上角 (起始點在下圖中標記為“Start” )。 機器人每次只能向下或者向右移動一步。機器人試圖達到網格的右下角(在下圖中標記為“Finish”)。 現在考慮網格中有障礙物。那么從左上角到右下角將會有多少條不同的路徑? Leetcode練習(Python):第448題:找到所有數組中消失的數字:給定一個范圍在 1 ≤ a[i] ≤ n ( n = 數組大小 ) 的 整型數組,數組中的元素一些出現了兩次,另一些只出現一次。 Leetcode練習(Python):數組類:第75題:給定一個包含紅色、白色和藍色,一共 n 個元素的數組,原地對它們進行排序,使得相同顏色的元素相鄰,並按照紅色、白色、藍色順序排列。 此題中,我們使用整數 0、 1 和 2 分別表示紅色、白色和藍色。 注意: 不能使用代碼庫中的排序函數來解決這道題。 Leetcode練習(Python):數組類:第217題:給定一個整數數組,判斷是否存在重復元素。 如果任意一值在數組中出現至少兩次,函數返回 true 。如果數組中每個元素都不相同,則返回 false 。 Leetcode練習(Python):數組類:第128題:給定一個未排序的整數數組,找出最長連續序列的長度。 要求算法的時間復雜度為 O(n)。
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM