常州做网站信息,百度精准搜索,网站建设模型,前端开发课程该楼层疑似违规已被系统折叠 隐藏此楼查看此楼纯新手#xff0c;最近想学一下算法#xff0c;上网看了个教程#xff0c;看到了一个很经典的返回最大子数组之和的问题#xff0c;然后我想问一下我用分治法把最大和求出来了#xff0c;但是要怎么返回子数组本身呢#xff…该楼层疑似违规已被系统折叠 隐藏此楼查看此楼纯新手最近想学一下算法上网看了个教程看到了一个很经典的返回最大子数组之和的问题然后我想问一下我用分治法把最大和求出来了但是要怎么返回子数组本身呢因为是函数的递归所以有些云里雾里。以下是我模仿着写的代码。输出结果是30。int MaxAddSub(int *a,int front,int end){ //int i1,i2;if(frontend)return a[front];int Middle(frontend)/2;//寻找中间位置int Max_1 MaxAddSub(a,front,Middle);//求左侧的数组最大的前缀和int Max_2 MaxAddSub(a,Middle1,end);//求右侧的数组最大的前缀和int i,New0,Left0;for(iMiddle;ifront;i--){Newa[i];if(Left{LeftNew;//i1i;}}int Right0;New0;for(iMiddle1;iend;i){Newa[i];if(Right{RightNew;//i2i;}}int Max_3LeftRight;if(Max_1Max_2Max_1Max_3)return Max_1;if(Max_2Max_1Max_2Max_3)return Max_2;if(Max_3Max_2Max_3Max_1)return Max_3;int main(){int Max;int a[9]{1,-2,3,10,-4,7,2,5,7};MaxMaxAddSub(a,0,8);printf(%d,Max);return 0;}