leetcode go 刪除排序數(shù)組中的重復(fù)項(xiàng) and 盛最多水的容器

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

不要使用額外的數(shù)組空間,你必須在 原地 修改輸入數(shù)組 并在使用 O(1) 額外空間的條件下完成。

鏈接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array

思路:一開(kāi)始自己的想法是放到map里,其實(shí)一般go去重的時(shí)候都會(huì)選擇map實(shí)現(xiàn),然后放到新的切片里就可以了,但是看題,原地刪除,后來(lái)只能轉(zhuǎn)變思想,看了下題解,因?yàn)槲沂莿傞_(kāi)始刷算法,所以并沒(méi)有技巧,這時(shí)候其實(shí)對(duì)于剛開(kāi)始刷算法的人,可以自己先想一下自己的思路,然后看最優(yōu)的題解,學(xué)習(xí)這種題解的方法,雙指針會(huì)在很多題運(yùn)用到,培養(yǎng)這種思路,因?yàn)槲沂橇璩康臅r(shí)候刷的這道題,我看后一度懷疑自己,問(wèn)題在于,我改變的只是nums[:s+2]的值,后面的值依然沒(méi)變,依然有值,跟題意不一樣,糾結(jié)了半小時(shí),為啥就對(duì)了,題中是每個(gè)元素只出現(xiàn)一次,如果不對(duì)nums做截取,你改變的只是部分,nums[s+2:]依然是之前的值,依然可能會(huì)存在重復(fù),好吧,到最后我還是不糾結(jié)了,只是少一步截取,但是只要明白這種思路就好,雙指針中的:快慢指針

go中的最優(yōu)解法


2.盛最多水的容器

給你 n 個(gè)非負(fù)整數(shù) a1,a2,...,an,每個(gè)數(shù)代表坐標(biāo)中的一個(gè)點(diǎn)?(i,?ai) 。在坐標(biāo)內(nèi)畫(huà) n 條垂直線,垂直線 i?的兩個(gè)端點(diǎn)分別為?(i,?ai) 和 (i, 0)。找出其中的兩條線,使得它們與?x?軸共同構(gòu)成的容器可以容納最多的水。

說(shuō)明:你不能傾斜容器,且?n?的值至少為 2。

示例:輸入:[1,8,6,2,5,4,8,3,7]輸出:49

我看好幾遍題沒(méi)看懂,看圖就可以了,面積為底*高,橫坐標(biāo)好找,對(duì)于高度的話,只能找最小值,去乘以橫坐標(biāo),得到最大面積,同樣使用的是雙指針



遞歸:通過(guò)調(diào)用函數(shù)體進(jìn)行的循環(huán)

利用盜夢(mèng)空間電影來(lái)類比遞歸,則得到:

1.向下進(jìn)入到不同夢(mèng)境中,向上又回到原來(lái)一層(不能跳躍,只能一層一層上或下)

2.用參數(shù)來(lái)進(jìn)行函數(shù)不同層間的變量傳遞(類比盜夢(mèng)空間中通過(guò)聲音傳到一層)

3.每一層的環(huán)境和人物都是一份拷貝,除了主角人物,主角人物可以不同層級(jí)的夢(mèng)境,發(fā)生和攜帶變化,這時(shí)的主角團(tuán)隊(duì)就類似于函數(shù)里的參數(shù),同時(shí)還會(huì)有一些全局變量

遞歸寫(xiě)法

1.在寫(xiě)遞歸時(shí),一定要先把遞歸的終止條件 terminator,如果沒(méi)有的話就會(huì)造成無(wú)限遞歸或者四遞歸

2.process,也就是在這一層級(jí)寫(xiě)業(yè)務(wù)代碼,邏輯代碼

3.drill down 進(jìn)入到下一層?

4. reverse 最后一步可能有時(shí)候不需要,就是清理當(dāng)前層的參數(shù)或者其他數(shù)據(jù)

遞歸的思維要點(diǎn):

1.? 不要人肉進(jìn)行遞歸,一開(kāi)始時(shí)可以看函數(shù)華遞歸樹(shù),但是后續(xù)一定要直接看函數(shù)本身寫(xiě)遞歸

2.找到最近最簡(jiǎn)的方法,將其拆解成可重復(fù)解決的問(wèn)題(重復(fù)子問(wèn)題)

3.數(shù)學(xué)歸納法思維

爬樓梯問(wèn)題:

傻遞歸,fibonacci

動(dòng)態(tài)規(guī)劃版:(對(duì)于遞歸法優(yōu)化)

括號(hào)生成:

作業(yè):

https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/

https://leetcode-cn.com/problems/validate-binary-search-tree/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容