?1005.K次取反后最大化的數(shù)組和??
文檔和視頻講解:代碼隨想錄(programmercarl.com)
狀態(tài):ac
用時:0.5h
思路:先按照絕對值從大到小將數(shù)組排序运褪,然后從頭開始把負(fù)數(shù)轉(zhuǎn)換成整數(shù)惊楼,如果k沒用完,再把絕對值最小的值反復(fù)取反秸讹。
代碼:
?134.?加油站?
文檔和視頻講解:代碼隨想錄(programmercarl.com)
狀態(tài):未ac
用時:1h
思路:假設(shè)從i開始走檀咙,中間的油量只能支撐它走到j(luò),那么i到j(luò)之間的位置都不可能到j(luò)的璃诀,因?yàn)槿绻偃鏸+1可以j+1弧可,而i可以走到i+1,那么i就可以走到j(luò)+1劣欢,但是i只能走到j(luò)棕诵,這形成了悖論。因此i和j之間的數(shù)字不可能走到j(luò)之后凿将,更不可能走一圈的校套。可以用一個cursum來計算每天的剩余油量牧抵,當(dāng)小于0時候搔确,表示走到這斷油,可以重新計算cursum并更新start灭忠。在用一個totalsum計算整個數(shù)組的剩余油量總和,如果小于0表示總油量小于總消耗量座硕,任何位置都不可能走一圈的弛作。
代碼:
135.?分發(fā)糖果?
文檔和視頻講解:代碼隨想錄(programmercarl.com)
狀態(tài):未ac
用時:1h
思路:結(jié)果數(shù)組全部賦值1。先從左到右處理ratings數(shù)組右大于左的情況华匾,分發(fā)糖果數(shù)量比左邊大一即可映琳。然后從右到左處理ratings數(shù)組左大于右的情況机隙,此時取右邊糖果數(shù)量加一和左邊糖果數(shù)量的最大值。
代碼:
注:左大于右的情況要從右到左處理萨西,不能從左到右有鹿,因?yàn)槿绻莻€遞減的序列,結(jié)果上谎脯,i-1的數(shù)量要大于i葱跋,而i要大于i+1,也就是i-1和i的結(jié)果要使用i和i+1的結(jié)果源梭。