最大数字子串和
2011-09-04 11:32
225 查看
inline void getMaxSub()
{
int a[] = {-3, 4, 9, 2, -10, -7, 11, 3, -8};
int b[] = {-1, 2, 6, -3, 5, -7, 14, -5, -15, 1, 8, -4, 9};
int c[] = {-2, 11, -4, 13, -5, 2, -5, -3, 12, -9};
vector<int> iv(c, c+10);
vector<int>::iterator itmpstart = NULL, istart = NULL, iend = NULL;
vector<int>::iterator it = iv.begin();
int sum = 0, max = 0;
for (; it != iv.end(); it++)
{
if(sum >= 0)
{
sum += *it;
}
else
{
itmpstart = it;
sum = *it;
}
if (sum > max)
{
istart = itmpstart;
max = sum;
iend = it;
}
}
cout << "max sub string is: ";
for (it = istart; it <= iend; it++)
{
cout << *it << " ";
}
cout << "max sum is: " << max << endl;
}
{
int a[] = {-3, 4, 9, 2, -10, -7, 11, 3, -8};
int b[] = {-1, 2, 6, -3, 5, -7, 14, -5, -15, 1, 8, -4, 9};
int c[] = {-2, 11, -4, 13, -5, 2, -5, -3, 12, -9};
vector<int> iv(c, c+10);
vector<int>::iterator itmpstart = NULL, istart = NULL, iend = NULL;
vector<int>::iterator it = iv.begin();
int sum = 0, max = 0;
for (; it != iv.end(); it++)
{
if(sum >= 0)
{
sum += *it;
}
else
{
itmpstart = it;
sum = *it;
}
if (sum > max)
{
istart = itmpstart;
max = sum;
iend = it;
}
}
cout << "max sub string is: ";
for (it = istart; it <= iend; it++)
{
cout << *it << " ";
}
cout << "max sum is: " << max << endl;
}
相关文章推荐
- 求一个字符串s的最大连续递增数字子串
- 查找最大的数字子串
- 一道C语言面试题——求最大连续数字子串
- 笔试算法题(30):从已排序数组中确定数字出现的次数 & 最大公共子串和最大公共序列(LCS)
- 寻找最大连续子串和以及寻找最长数字串
- 编程之美(数字的魅力--最大子串和,积)
- 习题 32:最大数字子串之和★★
- DP动态规划——最大数字子串
- 找出一串数字中的最大和子串
- 最大数字子串和问题(NaiKai OJ P1760)
- 求一个字符串s的最大连续递增数字子串
- nk1760 最大数字子串
- 最大数字子串和
- 黄金队列,汉诺塔,奇怪的比赛,第一个数字,割圆,最大数,矩形的交集和并集,趣味算式(第三届蓝桥杯Java本科预赛试题)
- 计算两个字符串最大公有子串
- homework-01 最大子串和
- 找工作知识储备(2)---数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- NYOJ 44 子串和 && NYOJ 983 首尾相连数组的最大子数组和
- 求一个整数序列的和的最大子串