文章

33

粉丝

0

获赞

156

访问

7.8k

头像
最大序列和 题解:Kande算法
P1172 清华大学/兰州大学机试题
发布于2026年3月22日 11:45
阅读数 206

kande算法,遍历一次数组。
当前最大值 = max(arr[i], arr[i] + 当前最大值) 
全局最大值 = max(当前最大值, 全局最大值) 

 

#include <bits/stdc++.h>
using namespace std;


long long MaxVal(long long x,long long y){
	return x>y?x:y;
}

int main() {//注意不用long long最后一个样例过不去
    
    int n;
    while(cin>>n){
    	vector<long long> vec;
    	for(int i=0;i<n;i++){
    		long long temp;
    		cin>>temp;
    		vec.push_back(temp);
		}

	long long  max_t = vec[0],max_all=vec[0];
	

	for(int i=1 ;i<vec.size();i++){//更新当前最大值,全局最大值.
		max_t = MaxVal(vec[i],max_t+vec[i]);
		max_all = MaxVal(max_t,max_all);
	}

	
		cout<<max_all<<endl;
    	
	}
    
    return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发