zoukankan      html  css  js  c++  java
  • 输出二维环形数组中最大子数组和

    组员 石鹤李海超

    一、题目

    输出二维环形数组中最大子数组和

    二、设计思想

    把解决一维环形数组,和普通二维数组的方法结合起来街是解决二维环形数组的方法。

    三、源代码

    #include<iostream.h>
    #include<time.h>
    #include<stdlib.h>
    int qiumax(int arry[],int max)
    {
        int i;
        long sum;
        for(i=0;i<5;i++)
        {
            for(i=0;i<5;i++)
            {
                arry[i+5]=arry[i];
            }
        }
        for(int j=0;j<5;j++)
        {
            sum=0;
            for(int k=j;k<5+j;k++)
            {
                sum=sum+arry[k];
                if(sum>max)
                {
                    max=sum;
                }
            }
        }
        return max;
    }
    int main()
    {
        int qiumax(int arry[10],int max);
        int i,j,k;
        int arry[5][10]={{1,1,1,-1,-1},{1,1,1,-1,-1},{1,1,1,-1,-1},{1,1,1,-1,-1},{1,1,1,-1,-1}};
        int arry1[10]={0,0,0,0,0,0,0,0,0,0};
        int max=arry[0][0];
        for(i=0;i<5;i++)
        {
            for(j=0;j<5;j++)
            {
                arry[i][j+5]=arry[i][j];
            }
        }
        for(i=0;i<5;i++)
        {
            for(j=i;j<5;j++)
            {
                for( k=0;k<5;k++)
                {
                    arry1[k]+=arry[j][k];
                }
                max=qiumax(arry1,max);
            }
            for(k=0;k<10;k++)
            {
                arry1[k]=0;
            }
        }
        cout<<"MAX IS"<<" "<<max<<endl;
        return 0;
    }

    四、结果截图

    五、实验心得

    本次实验并不很难,只需把前两次的想法结合起来,修改下前两次的程序即可。

    但在调用函数传参是我俩遇到了麻烦,改正后对传参有了更深的认识。

  • 相关阅读:
    二进制位运算
    Leetcode 373. Find K Pairs with Smallest Sums
    priority_queue的用法
    Leetcode 110. Balanced Binary Tree
    Leetcode 104. Maximum Depth of Binary Tree
    Leetcode 111. Minimum Depth of Binary Tree
    Leetcode 64. Minimum Path Sum
    Leetcode 63. Unique Paths II
    经典的递归练习
    案例:java中的基本排序
  • 原文地址:https://www.cnblogs.com/weaponx/p/4389800.html
Copyright © 2011-2022 走看看