feat(189-rotate-array): add py3 solution
This commit is contained in:
parent
eb41db0efa
commit
da5d790d16
31
0189_rotate-array/README.md
Normal file
31
0189_rotate-array/README.md
Normal file
@ -0,0 +1,31 @@
|
||||
Given an array, rotate the array to the right by `k` steps, where `k` is non-negative.
|
||||
|
||||
**Example 1:**
|
||||
|
||||
Input: nums = [1,2,3,4,5,6,7], k = 3
|
||||
Output: [5,6,7,1,2,3,4]
|
||||
Explanation:
|
||||
rotate 1 steps to the right: [7,1,2,3,4,5,6]
|
||||
rotate 2 steps to the right: [6,7,1,2,3,4,5]
|
||||
rotate 3 steps to the right: [5,6,7,1,2,3,4]
|
||||
|
||||
|
||||
**Example 2:**
|
||||
|
||||
Input: nums = [-1,-100,3,99], k = 2
|
||||
Output: [3,99,-1,-100]
|
||||
Explanation:
|
||||
rotate 1 steps to the right: [99,-1,-100,3]
|
||||
rotate 2 steps to the right: [3,99,-1,-100]
|
||||
|
||||
|
||||
**Constraints:**
|
||||
|
||||
* `1 <= nums.length <= 105`
|
||||
* `-231 <= nums[i] <= 231 - 1`
|
||||
* `0 <= k <= 105`
|
||||
|
||||
**Follow up:**
|
||||
|
||||
* Try to come up with as many solutions as you can. There are at least **three** different ways to solve this problem.
|
||||
* Could you do it in-place with `O(1)` extra space?
|
16
0189_rotate-array/python3/extra_space.py
Normal file
16
0189_rotate-array/python3/extra_space.py
Normal file
@ -0,0 +1,16 @@
|
||||
# Time: O(N)
|
||||
# Space: O(N)
|
||||
class Solution:
|
||||
def rotate(self, nums: List[int], k: int) -> None:
|
||||
"""
|
||||
Do not return anything, modify nums in-place instead.
|
||||
"""
|
||||
n = len(nums)
|
||||
result = [None] * n
|
||||
|
||||
for i, num in enumerate(nums):
|
||||
new_i = (i + k) % n
|
||||
result[new_i] = num
|
||||
|
||||
for i, num in enumerate(nums):
|
||||
nums[i] = result[i]
|
0
0189_rotate-array/python3/solution.py
Normal file
0
0189_rotate-array/python3/solution.py
Normal file
Loading…
Reference in New Issue
Block a user