【微软100题】003求子数组的最大和
来源:互联网 发布:wlan网络是什么 编辑:程序博客网 时间:2024/06/05 09:59
/* * 题目: * 3.求子数组的最大和(数组) * 题目: * 输入一个整形数组,数组里有正数也有负数。 * 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 * 求所有子数组的和的最大值。要求时间复杂度为 O(n)。 * 例如输入的数组为 1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为 3, 10, -4, 7, 2, * 因此输出为该子数组的和 18。 */#include <iostream>using namespace std;/* * *a++和(*a)++ * *a++,是让a用完之后 a指针向后移动一次 * (*a)++,是让a指向的数据用完之后,自加一次 */int maxSum(int* a, int n) {int sum = 0;int current = 0;for (int i = 0; i < n; i++) {if (current < 0) {current = a[i];} else {current += a[i];}if (sum < current) {sum = current;}}if (sum == 0) { //数组元素全部为负的情况sum = a[0];for (int i = 1; i < n; i++) {if (sum < a[i]) {sum = a[i];}}}return sum;}int main() {int a[] = { 1, -2, 3, 10, -4, 7, 2, -5 };cout << maxSum(a, 8) << endl;return 0;}
0 0
- 【微软100题】003求子数组的最大和
- (微软面试100题)求子数组的最大和
- (微软100题)3.求子数组的最大和
- 微软面试(3/100)--求子数组的最大和
- 微软编程题之求子数组的最大和
- 微软面试100题之第三题:求子数组的最大和
- 求子数组的最大和 【微软面试100题 第三题】
- 微软100题第3题:求子数组的最大和
- 微软100题第三题(求子数组的最大和)
- 微软等数据结构+算法面试100题(44)-- 求子数组的最大和
- 微软面试100题之三 求子数组的最大和
- 微软100道算法题------求子数组的最大和
- 微软面试100题系列---求子数组的最大和
- 微软面试100道之3 求子数组的最大和(数组)
- 动态规划算法 (微软笔试题,求连续子数组的最大和)
- 【从零单排之微软面试100题系列】03之求子数组的最大和
- 3 微软面试题:求子数组的最大和,并找出此子数组
- 微软等面试100题筛选答案-3-求子数组最大和
- C语言的一个二叉树
- 日期时间对话框
- 作为一个新人,怎样学习嵌入式Linux?被问过太多次,特写这
- Java和Android注释规范
- Android中pendingIntent的深入理解
- 【微软100题】003求子数组的最大和
- mp4文件moov atom放置在mdat atom之前 代码实现
- php反射的使用
- 基于Bmob后台的AutoBank安卓客户端(实习最后两天)
- 计算二进制中1的个数和0的个数
- Android—Listview优化的几种方法
- android 事件分发 ViewGroup
- 使用 jQuery UI Dialog
- Regular Expression Matching