problemscpp
A collection of my answers to algorithm problems in c++.
静态 Public 成员函数 | 所有成员列表
leetcode::maximum_total_beauty_of_the_gardens::Solution类 参考

#include <leetcode.h>

静态 Public 成员函数

static long long maximumBeauty (vector< int > &flowers, long long newFlowers, int target, int full, int partial)
 

详细描述

在文件 leetcode.h2185 行定义.

成员函数说明

◆ maximumBeauty()

long long leetcode::maximum_total_beauty_of_the_gardens::Solution::maximumBeauty ( vector< int > &  flowers,
long long  newFlowers,
int  target,
int  full,
int  partial 
)
static

< 当前项之前的和

< 补齐后n-i项到target后剩余的

在文件 leetcode.cpp5867 行定义.

5867 {
5868 const int n = flowers.size();
5869 sort(flowers.begin(), flowers.end());
5870 for(int i = 0; i < n; i++) {
5871 flowers[i] = min(flowers[i], target);
5872 }
5873 long long ans = 0;
5874 vector<long long> sum(n + 1, 0);
5875 for(int i = 0; i < n; i++) {
5876 sum[i + 1] = sum[i] + flowers[i];
5877 }
5878 for(int i = 0, j = 0; i <= n; i++) {
5879 const long long rest = newFlowers - (static_cast<long long>(target) * (n - i) - (sum[n] - sum[i]));
5880 if(rest >= 0) {
5881 while(j < i && rest >= static_cast<long long>(flowers[j]) * j - sum[j]) {
5882 //将前j项补齐到flowers[j]
5883 j++;
5884 }
5885 ans = max(ans, static_cast<long long>(full) * (n - i) + (j == 0 ? 0 : static_cast<long long>(partial) * min(static_cast<long long>(target - 1), (rest + sum[j]) / j)));
5886 }
5887 if(i < n && flowers[i] == target) {
5888 break;
5889 }
5890 }
5891 return ans;
5892 }

被这些函数引用 leetcode::maximum_total_beauty_of_the_gardens::TEST().


该类的文档由以下文件生成: