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;

    }

}

 

 

 

 

文章標籤
全站熱搜
創作者介紹
創作者 En Chi Tsung 的頭像
En Chi Tsung

阿祁的部落格

En Chi Tsung 發表在 痞客邦 留言(0) 人氣(1)