sunflower781 2022-09-14 16:18 采纳率: 0%
浏览 30

递归好难,真的好难!


int Max3(int a,int b,int c)
{
    a=(a>b? a:b);
    return (a>c? a:c);
}
int MaxSonSum(int A[],int left,int right)
{
    if(left==right)
    {
        return (A[left]>0? A[left]:0);
    }
    else if(left<right)
    {
        int mid=(left+right)/2;
        int lsum=0,rsum=0,msum=0;
        lsum=MaxSonSum(A,left,mid);
        rsum=MaxSonSum(A,mid+1,right);
        msum=0;
        int thisMSum=msum;
        for(int i=mid;i>=left;i--)
        {
           thisMSum+=A[i];
           if(thisMSum>msum)
           {
               msum=thisMSum;
           }
        }
        for(int i=mid+1;i<=right;i++)
        {
            thisMSum+=A[i];
            if(thisMSum>msum)
            {
               msum=thisMSum;
            }
        }
        return Max3(lsum,msum,rsum);
    }
}

有没有人可以给我解释一下这个过程吗?总是想不通,这个难道不会有多个返回值吗?
比如{1 2 -8 9 9 -3 -3},就变成{1 2 -8 9},{9,-3,-3},在然后就是{1,2}{-8,9},{9,-3},是这样吗,真的不懂QAQ

  • 写回答

3条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-10-25 16:19
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 9月14日

悬赏问题

  • ¥15 如何使用python 实现对串口/dev/ttyUSB0进行上锁,使得该串口只能在一个python脚本中使用,其他脚本不能操作这个串口
  • ¥15 晶体塑性有限元——Damask求解
  • ¥15 写出这个有没有人能写一下今天中午就要
  • ¥30 设计一个图形用户界面来控制你机械臂的运动
  • ¥30 3d打印机无法识别到SD卡,如何解决?(相关搜索:格式化)
  • ¥15 RPG游戏架构设计和开发方法
  • ¥15 前端返回pdf时不显示内容
  • ¥50 如何在不能联网影子模式下的电脑解决usb锁
  • ¥20 服务器redhat5.8网络问题
  • ¥15 如何利用c++ MFC绘制复杂网络多层图