首页 > 代码库 > 最大字串和
最大字串和
最大字串和:
#include <iostream> using namespace std; //求最大字串和:返回最大和 int maxSubSum(int a[], int len) { int sum = 0; //全局最大值 int temp = 0; //局部最大值 for(int i = 0; i < len; ++i) { if(temp > 0) //如果局部最大值大于0,则继续求和,否则以数组当前元素重新初始化 { temp += a[i]; } else temp = a[i]; if(temp > sum) //如果局部最大值大于全局最大值则更新 sum = temp; } return sum; } //求最大字串和:返回最大和 // L: 最大字串的开始位置 // R: 最大字串的结束位置 int maxSunSum(int a[], int len, int &L, int &R) { int sum = 0; int temp = 0; for(int i = 0; i < len; ++i) { if(temp > 0) { temp += a[i]; } else { temp = a[i]; L = i; } if(temp > sum) { sum = temp; R = i; } } return sum; } int main() { int a[9] = {-2, 1, -3, 4, -1, 2, 1, -5, 4}; int L = 0, R = 0; int sum = maxSunSum(a, 9, L, R); cout << sum << " : " << endl; cout << L << " " << R << endl; //cout << maxSubSum(a, 9) << endl; }
最大字串和
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。