Algorithm/Leetcode
[Top Interview 150 - Array / String] 189. Rotate Array
code-bean
2024. 10. 12. 17:04
[Q] [Medium]
Given an integer array nums, rotate the array to the right by k steps,
where k is non-negative.
Constraints:
1 <= nums.length <= 105
-231 <= nums[i] <= 231 - 1
0 <= k <= 105
- 일단 rotate 문제니까, deque.rotate(k) 쓰면 된다고 생각했다.
- 그래서 작성했는데 먹히지 않음.
- 이번엔 아래와 같이 작성했는데 또 안됨! 왜!
- 조건들 때문이었다.. 그래서 if 문 추가하고 k가 n 보다 클 수 있어서 k%=n 추가하고 제출
# Wrong Answer
class Solution:
def rotate(self, nums: List[int], k: int) -> None:
"""
Do not return anything, modify nums in-place instead.
"""
n = len(nums)
nums = nums[n-k :] + nums[:-k]
# Answer
class Solution:
def rotate(self, nums: List[int], k: int) -> None:
"""
Do not return anything, modify nums in-place instead.
"""
n = len(nums)
k %= n
if len(nums) != 1 and k != 0 :
nums[:] = nums[n-k :] + nums[:-k]