第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

通過移動(dòng)字母來復(fù)制數(shù)組中的零以騰出空間

通過移動(dòng)字母來復(fù)制數(shù)組中的零以騰出空間

繁華開滿天機(jī) 2023-11-09 22:28:06
我正在解決一個(gè)需要以下輸入的問題:[1, 0, 2, 3, 0, 4, 5, 0]并輸出這個(gè):[1, 0, 0, 2, 3, 0, 0, 4]我的函數(shù)檢測零,當(dāng)零是列表的第 i 個(gè)元素時(shí),它i+1也變成零,并且列表的其余部分被移動(dòng)以為其騰出空間。列表末尾的元素被推出以騰出空間。我能夠用兩個(gè)for循環(huán)來完成它,但是它有O(n^2),我想在 中完成它O(n)。我想出了這個(gè):new = [0] * len(arr)zeroes = 0d = 0我創(chuàng)建第二個(gè)零列表,zeroes對零列表進(jìn)行計(jì)數(shù),并且d是要復(fù)制第二個(gè)列表的索引。我使用的數(shù)組是函數(shù)的輸入,名為arr.首先我數(shù)零:for i in range(len(arr)):    if arr[i] == 0:        zeroes+=1  然后我復(fù)制。我通過索引檢查該值是否為零,如果是,則跳過第 d 個(gè)和第 d+1 個(gè)元素。for i in range(len(arr)-zeroes):    if arr[i] == 0:        d+=1    else:        new[d] = arr[i]    d+=1然而對于:[1, 0, 2, 3, 0, 4, 5, 0]輸出是:[1, 0, 0, 2, 3, 0, 0, 0]我不確定為什么最后一個(gè)元素沒有改變。
查看完整描述

1 回答

?
慕尼黑的夜晚無繁華

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超6個(gè)贊

這是一個(gè)更簡單的解決方案,仍然是 O(n):


a = [1,0,2,3,0,4,5,0]

b = []

for i in a:

    b.append(i)

    if i == 0:

        b.append(0)

b = b[:len(a)]

b 的值是


[1, 0, 0, 2, 3, 0, 0, 4]


查看完整回答
反對 回復(fù) 2023-11-09
  • 1 回答
  • 0 關(guān)注
  • 169 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號