给定一个长度为 n 的正整数数组请你选出一个区间,使得该区间是所有区间中经过下述计算方法得到的值。 计算方法:区间最小值区间和 数据范围: ,区间中所有元素都满足
区块链毕设网qklbishe.com为您提供问题的解答
给定一个长度为 n 的正整数数组请你选出一个区间,使得该区间是所有区间中经过下述计算方法得到的值。
计算方法:区间最小值区间和
数据范围: ,区间中所有元素都满足
枚举1到100中的每个数字在数组中作为最小值时,乘以对应最长区间和的值,维护一个最大值。
当然,这里需要正序反序都来一遍, 防止出现有序数组这种特殊情况,对于所有数字相同的情况,最后也需要特判一下。
class Solution { public: int mintimessum(vector& a) { // write code here typedef long long LL; int n=a.size(); LL res=0; for(int i=100;i;i--){ LL s=0; for(int j=0;j<n;j++){ if(a[j]<i){ res=max(res,s*i); s=0; }else{ s+=a[j]; } } s=0; for(int j=n-1;j>=0;j--){ if(a[j]<i){ res=max(res,s*i); s=0; }else{ s+=a[j]; } } if(a[0]>=i) res=max(res,s*i); } return res; } };
37:20
以上就是关于问题给定一个长度为 n 的正整数数组请你选出一个区间,使得该区间是所有区间中经过下述计算方法得到的值。
计算方法:区间最小值区间和
数据范围: ,区间中所有元素都满足的答案
欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。
区块链NFT链游项目方科学家脚本开发培训