交换前,截止第i轮及其之前所有植物生长完成,历经的时间一定=t+maxgrow= t + maxgrow=t+maxgrow
交换后,截止第i轮及其之前所有植物生长完成,历经的时间一定≤t+maxgrow\leq t + maxgrow≤t+maxgrow(因为交换前除第i轮植物的生长截止时间都一定小于等于t+maxgrowt+maxgrowt+maxgrow)
代码
classSolution{publicintearliestFullBloom(int[] plantTime,int[] growTime){Map<Integer,List<Integer>> a =newHashMap<>();for(int i =0;i<growTime.length;i++){List<Integer> l = a.getOrDefault(growTime[i],newArrayList<>());
l.add(i);
a.put(growTime[i],l);}Arrays.sort(growTime);int ans =0;int pre =0;for(int i = growTime.length -1;i>=0;i--){if(a.containsKey(growTime[i])){for(int index:a.get(growTime[i])){
ans =Math.max(ans,pre + plantTime[index]+ growTime[i]);
pre += plantTime[index];}
a.remove(growTime[i]);}}return ans;}}