《Cracking the Coding Interview》——第17章:普通题——题目8
2014-04-28 23:37
399 查看
2014-04-28 23:35
题目:最大子数组和问题。
解法:O(n)解法。
代码:
题目:最大子数组和问题。
解法:O(n)解法。
代码:
// 17.8 Find the consecutive subarray with maximum sum in an array. // O(n) online algorithm. #include <cstdio> #include <vector> using namespace std; int maximumSum(vector<int> &v) { int n = (int)v.size(); if (n == 0) { return 0; } int val = v[0]; int i; for (i = 1; i < n; ++i) { val = val > v[i] ? val : v[i]; } if (val <= 0) { return val; } int res; res = val = 0; for (i = 0; i < n; ++i) { val += v[i]; if (val > res) { res = val; } if (val < 0) { val = 0; } } return res; } int main() { vector<int> v; int n, i; while (scanf("%d", &n) == 1 && n > 0) { v.resize(n); for (i = 0; i < n; ++i) { scanf("%d", &v[i]); } printf("%d\n", maximumSum(v)); v.clear(); } return 0; }
相关文章推荐
- 《Cracking the Coding Interview》——第17章:普通题——题目6
- 《Cracking the Coding Interview》——第17章:普通题——题目7
- 《Cracking the Coding Interview》——第17章:普通题——题目1
- 《Cracking the Coding Interview》——第17章:普通题——题目9
- 《Cracking the Coding Interview》——第17章:普通题——题目2
- 《Cracking the Coding Interview》——第17章:普通题——题目10
- 《Cracking the Coding Interview》——第17章:普通题——题目3
- 《Cracking the Coding Interview》——第17章:普通题——题目11
- 《Cracking the Coding Interview》——第17章:普通题——题目12
- 《Cracking the Coding Interview》——第17章:普通题——题目13
- 《Cracking the Coding Interview》——第17章:普通题——题目4
- 《Cracking the Coding Interview》——第17章:普通题——题目14
- 《Cracking the Coding Interview》——第17章:普通题——题目5
- 《Cracking the Coding Interview》——第2章:链表——题目7
- 《Cracking the Coding Interview》——第4章:树和图——题目9
- 《Cracking the Coding Interview》——第9章:递归和动态规划——题目1
- 《Cracking the Coding Interview》——第9章:递归和动态规划——题目11
- 《Cracking the Coding Interview》——第11章:排序和搜索——题目8
- 《Cracking the Coding Interview》——第10章:可扩展性和存储空间限制——题目6
- 《Cracking the Coding Interview》——第13章:C和C++——题目7