LeetCode 2136 - Earliest Possible Day of Full Bloom 解題心得( 題目 )
解題概念:Greedy
解題方法:我們注意到無論順序如何,種植時間不會改,所以這題的方法是將種子依照生長時間由高到低排序,之後就照這個順序種植,最後取需要最久的那個就是答案了!
Java參考程式碼(有更好解法可在下方留言,謝謝!):
//Date:2022/1/12
//Author:En Chi Tsung(欉恩祁)
class Solution {
int n,mux,cnt;
public int earliestFullBloom(int[] plantTime, int[] growTime) {
n=plantTime.length;
mux=cnt=0;
F[] a=new F[n];
for(int i=0;i<n;i++) {
a[i]=new F(plantTime[i],growTime[i]);
}
Arrays.sort(a,new Comparator<F>() {
public int compare(F f,F s) {
return s.g-f.g;
}
});
for(int i=0;i<n;i++) {
cnt+=a[i].p;
mux=Math.max(mux,cnt+a[i].g);
}
return mux;
}
}
class F{
int p,g;
F(int a,int b){
p=a;
g=b;
}
}
文章標籤
全站熱搜
