华为OJ 求子数组的最大和

来源:互联网 发布:sql是什么的缩写 编辑:程序博客网 时间:2024/05/16 15:44
#include <stdlib.h>#include <string.h>#include "oj.h"/*功能:    输入:pIntArray:数组,nCout:数组长度    输出:     返回:返回最大值     */int GetMaxSum(int *Array,int left,int right){if(right-left==1) return Array[left];int mid=left+(right-left)/2;int leftMaxSum=GetMaxSum(Array,left,mid);int rightMaxSum=GetMaxSum(Array,mid,right);int max=leftMaxSum>rightMaxSum?leftMaxSum:rightMaxSum;int leftCurrSum=Array[mid-1],rightCurrSum=Array[mid],curSum=0;for(int i=mid-1;i>=left;i--){curSum+=Array[i];if(curSum>leftCurrSum)leftCurrSum=curSum;}curSum=0;for(int i=mid;i<right;i++){curSum+=Array[i];if(curSum>rightCurrSum)rightCurrSum=curSum;}return max>(leftCurrSum+rightCurrSum)?max:leftCurrSum+rightCurrSum;}int GetSubArraySum(int* pIntArray, int nCount){    /*在这里实现功能*/int answer=GetMaxSum(pIntArray,0,nCount);    return answer;}

0 0
原创粉丝点击