'''
第34天:移動數(shù)組
每日一題 夸克編程 今天
題目
給定一個數(shù)組,將數(shù)組中的元素向右移動 k 個位置,其中 k 是非負(fù)數(shù),要求使用空間復(fù)雜度為 O(1) 的原地算法
例子
move_ele([1,2,3,4,5,6,7],3) -> [5,6,7,1,2,3,4]
假設(shè)
輸入?yún)?shù)均合法
tips
將輸入數(shù)組翻轉(zhuǎn)兩次
代碼:
'''
# 不是原地移動
def move_ele2(lst, k):
print(id(lst))
lst = lst[-k:] + lst[:-k]
# lst[k:].reverse()
# print(lst)
# lst[:k].reverse()
print(id(lst))
return lst
def move_ele(lst, k):
if 0 < k:
k %= len(lst)
while k:
lst.insert(0, lst.pop(-1))
k -= 1
# pass
return lst
print(move_ele2([1,2,3,4,0,5,6,7],3))# -> [5,6,7,1,2,3,4]