Re: [閒聊] 每日LeetCode

作者: Rushia (みけねこ的鼻屎)   2022-10-03 11:26:31
1578. Minimum Time to Make Rope Colorful
Alice有一個綁滿各種顏色氣球的繩子,因為他想要繩子的顏色看起來更多彩,所以
兩個相同顏色的氣球不能放在一起要移除,若移除每個氣球要耗費不同時間求出讓
繩子是多彩要耗費的最小時間。
思路:
1.貪婪演算法,對相同顏色的氣球序列的最大成本進行貪婪(盡可能不拿成本最高的
氣球),每次成本都累加較小的氣球成本
2.pre用來判斷上一個走訪的氣球之顏色
3.remain保留較大的氣球成本(剩下的),利用一個布林first來判斷remain的初始值
並把remain和當前的比
Java Code:
class Solution {
public int minCost(String colors, int[] neededTime) {
int cost = 0, n = neededTime.length, remain = 0;
boolean first = true;
char pre = colors.charAt(0);
for(int i = 1; i < n; i++) {
// 如果連續兩個氣球顏色一樣
if(pre == colors.charAt(i)) {
// 依照是否是第一次比決定要和哪個比
if(first) {
cost += Math.min(neededTime[i - 1], neededTime[i]);
remain = Math.max(neededTime[i - 1], neededTime[i]);
} else {
cost += Math.min(remain, neededTime[i]);
remain = Math.max(remain, neededTime[i]);
}
first = false;
}
else {
first = true;
}
pre = colors.charAt(i);
}
return cost;
}
}
感覺寫的很醜 我漬鯊
作者: a1234555 (肉寶寶)   2022-10-03 11:27:00
我彷彿看到溫莎
作者: Jaka (Jaka)   2022-10-03 11:29:00
大師
作者: an94mod0 (an94mod0)   2022-10-03 11:30:00
幹嘛換帳號
作者: Rushia (みけねこ的鼻屎)   2022-10-03 11:30:00
程序問題
作者: JerryChungYC (JerryChung)   2022-10-03 12:31:00
大師
作者: pandix (麵包屌)   2022-10-03 12:49:00
大師

Links booklink

Contact Us: admin [ a t ] ucptt.com