Algorithm 连续值的最大和

Algorithm 连续值的最大和,algorithm,Algorithm,美丽的亚得里亚海沿岸有N家酒店。每家酒店都有 它的价值是欧元 斯罗尔乔中了百万欧元的彩票。现在他想买一部电影 对于连续的酒店,这些酒店的价值之和 连续的酒店尽可能好,但不超过M 我被要求计算可能的最大值。 我的代码是: big=-1; for(i=0;i<n;i++) { sum=0; for(j=i;j<n;j++) { sum+=A[j]; if(sum<m) {B[i]=sum;contin

美丽的亚得里亚海沿岸有N家酒店。每家酒店都有 它的价值是欧元

斯罗尔乔中了百万欧元的彩票。现在他想买一部电影 对于连续的酒店,这些酒店的价值之和 连续的酒店尽可能好,但不超过M

我被要求计算可能的最大值。 我的代码是:

big=-1;
for(i=0;i<n;i++)
{
    sum=0;
    for(j=i;j<n;j++)
    {
        sum+=A[j];
        if(sum<m) 
            {B[i]=sum;continue;}
        if(sum>m)
            {B[i]=(sum-A[j]); break;}
        if(sum==m)
            {printf("%d\n",m); exit(1);}

     }
     if(B[i]>big)
        big=B[i];
}
printf("%lld",big); 
big=-1;

对于(i=0;i好的,这里是如何做到的,而不是让未来的谷歌用户太过明显

将酒店按从左到右的顺序排列在列表中


使用从索引i开始到j结束的“移动窗口”(这不是“背包问题”的特例吗?@Mika确实如此,但这并不能告诉我们太多。为什么对这个问题投了反对票?是因为提问者请求回答者提供伪代码吗?@JanDvorak,我想是因为
http://www.spoj.com/problems
不是为解决堆栈溢出问题而创建的
…允许出现以下问题这里的这个?它有助于将大脑问题转化为谷歌问题。我认为,这不是很好…@user3210882这会让它变得有点太简单,不是吗?@vp_arth不,每个索引最多移动n次,每次只有恒定数量的东西要更新。所以O(n)。好的简单方法。我认为在这里发布完整的解决方案(或伪代码)不是问题。当有人在谷歌上搜索解决方案时,他应该希望找到破坏者