算法题:旋转数组 布满荆棘的人生 2022-12-27 14:13 81阅读 0赞 ### leetcode:189. 旋转数组 python算法 ### * 题目描述 * * 示例 * 说明: * 代码 * 执行效率 # 题目描述 # 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 ## 示例 ## 示例 1: 输入: \[1,2,3,4,5,6,7\] 和 k = 3 输出: \[5,6,7,1,2,3,4\] 解释: 向右旋转 1 步: \[7,1,2,3,4,5,6\] 向右旋转 2 步: \[6,7,1,2,3,4,5\] 向右旋转 3 步: \[5,6,7,1,2,3,4\] 示例 2: 输入: \[-1,-100,3,99\] 和 k = 2 输出: \[3,99,-1,-100\] 解释: 向右旋转 1 步: \[99,-1,-100,3\] 向右旋转 2 步: \[3,99,-1,-100\] ## 说明: ## 尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。 要求使用空间复杂度为 O(1) 的 原地 算法。 # 代码 # class Solution: def rotate(self, nums: List[int], k: int) -> None: """ Do not return anything, modify nums in-place instead. """ k = k % len(nums) for i in range(k): nums.insert(0, nums.pop()) # 执行效率 # 35 个测试用例 执行用时: 144 ms 内存消耗: 14.2 MB 解题思路及代码来源:博主 题目来源:力扣(LeetCode) 题目链接:https://leetcode-cn.com/problems/rotate-array/ 题目著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
还没有评论,来说两句吧...