亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

Python|“雙指針?lè)ā苯鈩h除數(shù)組重復(fù)項(xiàng)問(wèn)題

Python算法題目中,掌握一定的方法和技巧或者說(shuō)是了解基礎(chǔ)解題規(guī)律,能夠在解決更多復(fù)雜問(wèn)題的過(guò)程中思路更清晰,算法更簡(jiǎn)單易懂。接下來(lái)用一個(gè)leetcode題目“原地刪除排序數(shù)組重復(fù)項(xiàng)”的案例來(lái)介紹一下“雙指針?lè)ā钡木唧w應(yīng)用。

題目描述:

給定一個(gè)排序數(shù)組,需要在原地刪除重復(fù)出現(xiàn)的元素,使得每個(gè)元素只出現(xiàn)一次,返回移除后新的數(shù)組。

輸入:[1,1,2]

輸出:[1,2]

解決方案:

1.首先需要引入兩個(gè)指針i,k;

2.指針i先用于遍歷數(shù)組,由于要?jiǎng)h除相同數(shù)字,需要判斷是否與上一個(gè)數(shù)字相同,當(dāng)遇到nums[i] != ums[i-1]時(shí),說(shuō)明已遇到新的不同數(shù)字,此時(shí),將該數(shù)字記錄;

3.指針k有兩個(gè)不同的作用。

一是用來(lái)統(tǒng)計(jì)這個(gè)數(shù)組中不同數(shù)字的數(shù)量,即每當(dāng)遇到新的數(shù)字時(shí),就執(zhí)行k +=1 ;

二是為了記錄這個(gè)新的數(shù)字,將指針i遍歷而遇到的新的數(shù)字的索引賦值給k,即nums[k] = nums[i]。

4.最終得到的k就是返回值。

代碼示例:

class Solution:

def removeDuplicates(self, nums: [int]) -> int:

if len(nums) == 0: return 0

k = 1

for i in range(1, len(nums)):

if nums[i] != nums[i - 1]:

nums[k] = nums[i]

k += 1

return k

結(jié)語(yǔ)

通過(guò)這道題目,可以了解到在解決原地刪除問(wèn)題時(shí),遇到這種有序依次排列的數(shù)組,用遍歷來(lái)做十分方便,而遍歷數(shù)組,就聯(lián)想到可以用雙指針?lè)▉?lái)解決。兩個(gè)指針,一個(gè)用來(lái)遍歷判斷,一個(gè)用來(lái)記錄數(shù)據(jù),十分容易就能得到結(jié)果。

版權(quán)聲明:轉(zhuǎn)載文章來(lái)自公開(kāi)網(wǎng)絡(luò),版權(quán)歸作者本人所有,推送文章除非無(wú)法確認(rèn),我們都會(huì)注明作者和來(lái)源。如果出處有誤或侵犯到原作者權(quán)益,請(qǐng)與我們聯(lián)系刪除或授權(quán)事宜。

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國(guó)內(nèi)好評(píng)如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開(kāi)發(fā)專業(yè)人才培訓(xùn)機(jī)構(gòu)!