文巾解题 189. 旋转数组
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                文巾解题 189. 旋转数组
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                1 題目描述
2 解題思路
2.1 輪轉賦值
建立一個輔助數組,輔助數組第(i+k)%len(nums)位的值等于原來的nums數組的第i位的值
class Solution(object):def rotate(self, nums, k):l=len(nums)ret=[0]*lfor i in range(l):ret[(i+k)%l]=nums[i]for i in range(l):nums[i]=ret[i]2.2 切片
-k%len(nums)到末尾的值移動到最前面,首位到-k%len(nums)的值移動到最后面
class Solution(object):def rotate(self, nums, k):l=len(nums)ret=nums[-k%l:]+nums[:-k%l]for i in range(l):nums[i]=ret[i]2.3 翻轉
先將整個數組翻轉,翻轉后的數組的前k位翻轉,再將后面的數組翻轉
class Solution(object):def rotate(self, nums, k):l=len(nums)nums.reverse()numstmp1=list(reversed(nums[:k%l]))tmp2=list(reversed(nums[k%l:]))lt1=len(tmp1)lt2=len(tmp2)for i in range(lt1):nums[i]=tmp1[i]for i in range(lt2):nums[i+lt1]=tmp2[i]nums總結
以上是生活随笔為你收集整理的文巾解题 189. 旋转数组的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 文巾解题 977. 有序数组的平方
- 下一篇: 文巾解题 283. 移动零
