Python實現 移動零 的三種方法

2021-08-28 09:54:06 字數 1490 閱讀 5673

給定陣列nums,寫乙個函式將陣列中所有零移動到陣列尾,並且保持非零元素的相對位置不變

example:

input:[0,1,0,3,12]output:[1,3,12,0,0]
注意:

你必須在原陣列上進行操作,不能拷貝額外的陣列

最小化操作的次數

def movezeroes(self, nums):

""":type nums: list[int]

:rtype: void do not return anything, modify nums in-place instead.

"""zeroplist = #存放所有0元素的下標

for i, num in enumerate(nums):

if num == 0 :

elif len(zeroplist) != 0:

index = zeroplist.pop(0) #取出陣列中最靠前的0元素下標

nums[i], nums[index] = nums[index], nums[i] #替換操作

def movezeroes(self, nums):

""":type nums: list[int]

:rtype: void do not return anything, modify nums in-place instead.

"""initlen = len(nums)

i = 0 #累加計數

j = 0 #0的個數

while i + j < initlen:

if nums[i] == 0:

# del nums[i]

nums[i:i+1] = #和被注釋掉的語句效果一樣

j += 1

else:

i += 1

nums += j*[0]

def movezeroes(self, nums):

""":type nums: list[int]

:rtype: void do not return anything, modify nums in-place instead.

"""initlen = len(nums)

i = 0 #累加計數

j = 0 #不為0的個數

while i < initlen:

if nums[i] != 0:

nums[j] =nums[i]

j += 1

i += 1

nums[j:] = (len(nums)-j)*[0]

演算法題來自:

VMware ESXi Vlan的三種實現方式

在vmware esx esxi網路中vlan實現方式可以分成3種,分別是通過物理交換機,虛擬交換機 vswitch 和esxi中的虛擬機器 vm 來新增vlan標記,具體方式如下 1 est external switch tagging 通過將交換機的埠劃分到不同的vlan實現虛擬機器的vlan...

用python實現零錢找零的三種方法

1.遞迴 recursion def coins changerec coin values,change 遞迴實現零錢找零 min count change base case if change in coin values return 1for value in i for i in coi...

python之selenium三種等待方法

前提 我們在做web自動化時,有的時候要等待元素載入出來,才能操作,不然會報錯 1.強制等待 2.隱式等待 3.顯示等待 內容 一,強制等待 這個比較簡單,就是利用time模組的sleep的方法來實現 例子 1 coding utf 8 2from time import sleep 3from s...