1 任选两颗A,B两颗种子,pa是种A种子需要的天数,ga是A种子开花需要的天数;
2 1.考虑先种A,后种B
3 mina_day=max(pa+ga,pa+pb+gb);
4 2.先种B,后种A;
5 minb_day=max(pb+gb,pb+pa+ga);
6
7 不妨设ga>gb;
8 pa+ga,pa+pb+gb
9
10 pb+gb,pb+pa+ga--> minb_day=pb+ga+pa>mina_day;
11 意味着ga>gb时先种A更优;
12
13
14 class Solution {
15 public:
16 typedef pair<int,int> pii;
17 static bool cmp(pii &a,pii &b){return a.second>b.second;}
18 int earliestFullBloom(vector<int>& plantTime, vector<int>& growTime) {
19 int n=plantTime.size();
20 vectorseed;
21 for(int i=0;i)seed.push_back({plantTime[i],growTime[i]});
22 sort(seed.begin(),seed.end(),cmp);
23 int day=0,ans=0;
24 for(int i=0;i)
25 {
26 day+=seed[i].first;
27 ans=max(ans,day+seed[i].second);
28 }
29 return ans;
30 }
31 };