求子数组的最大和
来源:互联网 发布:java表白程序 编辑:程序博客网 时间:2024/05/14 05:54
方法1:找出所有子数组,计算每个子数组的和,并返回最大值。
#include <iostream>using namespace std;//值最大的子树组int MaxSubArrayValue(int *num, int len){int sum = 0;int max = -1<<31;//max初始值为一个最小负值for (int i = 0; i < len; ++i){for (int j = 0; j <= i; ++j){for (int k = j; k < (len - i) + j; ++k){sum += num[k];}if (max < sum){max = sum;}sum = 0;}}return max;}int main(){int num[10] = {-1, 2, 8, 0, -3, 6, 3, 8, -7, 4};int n = MaxSubArrayValue(num, 10);cout<<n<<endl;return 1;}
方法2:运用动态规划的思想,时间复杂度能达到O(n)
#include <iostream>using namespace std;void MaxSubArray(int arr[], int n){int max = -1<<31;int sum = 0;for (int i = 0; i < n; ++i){if (sum + arr[i] > arr[i]){sum += arr[i];}else{sum = arr[i];}if (sum > max){max = sum;}}cout<<max<<endl;}int main(){int arr[] = {-1, 2, 8, 0, -3, 6, 3, 8, -7, 4};MaxSubArray(arr, 10);return 1;}
- 求数组最大子数组的和
- 求子数组的最大和
- 面试---求子数组的最大和
- 求子数组的最大和
- 求子数组的最大和
- 求子数组的最大和
- 求子数组的最大和
- 求子数组的最大和
- 求子数组的最大和
- 求子数组的最大和
- 求子数组的最大和
- 2.求子数组的最大和
- 3.求子数组的最大和
- 求子数组的最大和
- 3、求子数组的最大和
- 求子数组的最大和
- 求子数组的最大和
- 求子数组的最大和
- 手把手教您编写第一个单片机程序
- 软件开发中常见的十大系统瓶颈
- 稳压器,正常该怎么使用呢?
- ISO 8601
- 副词记忆(I):ly后缀的常用词
- 求子数组的最大和
- 店面突然跳闸了,接了稳压器,电脑还是开机的,我该怎么办?
- 淘宝牛人的博客
- 钱箱不会弹出的几个原因?
- unbalanced enable irq 问题的解决 以及共享的gpio中断引起的问题
- 钱箱的钥匙丢了或者是坏了怎么办?
- How WebKit Loads a Web Page
- 钱箱推进去又会自己弹出来,或者卡不住?
- ADS调试问题