最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

刷題第六天

2023-08-08 22:27 作者:葉蓽莉  | 我要投稿

150. 逆波蘭表達(dá)式求值:

這題我用的是棧,一個(gè)一個(gè)掃描字符,如果是數(shù)字的話,就進(jìn)棧,如果是操作符的話,就依次pop出兩個(gè)棧元素,再根據(jù)操作符進(jìn)行相應(yīng)操作后再將新元素push進(jìn)棧。最后的結(jié)果就是棧頂。

一開(kāi)始我用的棧是string類(lèi)型,但是后面發(fā)現(xiàn)每次取出都要string轉(zhuǎn)int,于是我直接定義棧為int類(lèi)型。

在進(jìn)行string轉(zhuǎn)int時(shí),我用的是atoi函數(shù),atoi(s.c_str())。string類(lèi)型不能直接使用atoi函數(shù),要轉(zhuǎn)化為char*類(lèi)型。

239. 滑動(dòng)窗口最大值:

這題我第一反應(yīng)是用隊(duì)列存儲(chǔ)窗口,但是又不好判斷窗口中的最大值,后面有想到優(yōu)先隊(duì)列,但是不知道怎么確定優(yōu)先隊(duì)列中的top是否還在窗口中(也是對(duì)優(yōu)先隊(duì)列不熟悉)。最后沒(méi)有思路,看了題解,用了priority_queue<pair<int,int>> q,優(yōu)先隊(duì)列默認(rèn)是大頂堆,first存值,second存值的下標(biāo)。q先初始化,將k個(gè)值存入,將top存入結(jié)果集,接下來(lái)從下標(biāo)k開(kāi)始遍歷,將新的值存入q,如果q中top下標(biāo)超出范圍,pop出。最后將滿足條件的top存進(jìn)結(jié)果集。

347. 前 K 個(gè)高頻元素:

看完題目腦子里冒出來(lái)的就是優(yōu)先隊(duì)列(我也不知道為啥),priority_queue<pair<int,int>> q,first存次數(shù),second存值。因?yàn)槟J(rèn)大頂堆,所以存進(jìn)去的時(shí)候要將次數(shù)設(shè)為負(fù)數(shù),這樣就是負(fù)的小頂堆啦!

但是,開(kāi)始寫(xiě)代碼之后出現(xiàn)了問(wèn)題,top是次數(shù)最小沒(méi)錯(cuò),但如果堆里有相同second值的pair怎么辦。此時(shí)陷入僵局,但我還是覺(jué)得優(yōu)先隊(duì)列的思路是對(duì)的,突然腦瓜子靈光一閃,我想到可以先將數(shù)組排序,這樣問(wèn)題就解決了。

19. 刪除鏈表的倒數(shù)第 N 個(gè)結(jié)點(diǎn):

第三次做這個(gè)題了,掌握了思路,模擬一下過(guò)程,很快就AC了。

142. 環(huán)形鏈表 II:

第二次做這道題了。和第一次做法不一樣,第一次使用的是計(jì)數(shù)節(jié)點(diǎn)出現(xiàn)次數(shù)。這次采用快慢指針,slow每次走一步,fast每次走兩步,如果fast==slow時(shí)跳出循環(huán),如果fast或者fast->next為null,則說(shuō)明無(wú)環(huán)。此時(shí)f=2s=s+nb(環(huán)長(zhǎng)度),s=nb,s如果要走到環(huán)頭,是a+nb,因此此時(shí)s再走a步即可。

15. 三數(shù)之和:

這題的思路自己想了差不多,但具體實(shí)現(xiàn)還是想不出來(lái),于是看了題解思路。這題的難點(diǎn)在于如何去重。

先將數(shù)組排序。遍歷數(shù)組,使用一個(gè)map存儲(chǔ)數(shù)組元素,如果出現(xiàn)過(guò)則跳過(guò)。令l=i+1,r=n-1,開(kāi)始循環(huán),循環(huán)條件為l<r,如果三數(shù)之和為0,就將i,l,r對(duì)應(yīng)的元素存進(jìn)結(jié)果集,再令i++,r--;如果三數(shù)之和大于0,說(shuō)明正數(shù)過(guò)大,應(yīng)使r--,反之l++。

這里有一個(gè)問(wèn)題,如果數(shù)組為[-2,0,0,2,2],那么將產(chǎn)生重復(fù)結(jié)果。這里我將r--改為while(nums[r]==nums[--r]),但是又產(chǎn)生一個(gè)問(wèn)題,如果數(shù)組為[0,0,0,0],r將一直減小直到溢出。因此我又改為while(l<r&&nums[r]==nums[--r])。

18.?四數(shù)之和:

給15.三數(shù)之和再套一層循環(huán)即可。需要注意(long)nums[a] + nums[b] + nums[c] + nums[d] == target,需要強(qiáng)制轉(zhuǎn)化為long才行。









刷題第六天的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
措勤县| 读书| 宁德市| 涿州市| 巩义市| 德保县| 方城县| 敦化市| 高淳县| 搜索| 呼伦贝尔市| 永州市| 通山县| 锦州市| 绵竹市| 宁南县| 高陵县| 开远市| 陇川县| 理塘县| 奉节县| 新丰县| 邢台县| 伊宁县| 札达县| 安多县| 会理县| 兴仁县| 宜宾市| 义马市| 封开县| 恭城| 仁寿县| 凤台县| 独山县| 嘉义市| 丰顺县| 安龙县| 新化县| 万州区| 宝山区|