zoukankan      html  css  js  c++  java
  • 和最大子数组

    设计思路

    实在没有其他思路,只有将所有子数组的和算出来,再进行比较得到最大值和子数组。

    程序源代码

    #include<iostream>

    #include<ctime>

     

    using namespace std;

     

    void main()

    {

         int a[20];             //整数数组

         int f;                 //数值范围

         int i,j,k;             //控制循环变量

         int sum,max=-100;      //和与最大值

         int m,n;               //记录子数组

     

         cout<<"请输入数值范围:";

         cin>>f;

     

         srand((unsigned) time(NULL));

         for (i=0;i<20;i++)

         {

             a[i]=(rand()%2?-1:1)*rand()%f;

             cout<<a[i]<<"   ";

         }

         cout<<endl;

     

         for (i=0;i<20;i++)

         {

             for (j=0;j<=i;j++)

             {

                  sum=0;

                  for (k=j;k<=i;k++)

                       sum=sum+a[k];

                  if (sum>max)

                  {

                       max=sum;

                       m=j;

                       n=i;

                  }

             }

         }

     

         cout<<"子数组的最大值为:"<<max<<endl;

         cout<<"子数组是第"<<m+1<<"个数,到第"<<n+1<<"个数。"<<endl;

         cout<<"子数组是:";

         for (i=m;i<=n;i++)

         {

             cout<<a[i]<<"  ";

         }

         cout<<endl;

     

    }

    截图

    总结

    设计的思路决定了一个程序的代码利用率和时间复杂度,思路的清晰程度决定了编写程序的流畅程度;这道题我的思路有点混乱,编写的很困难,就这,还是没想到好的方法!!

    时间复杂度还是没达到要求。

    项目计划总结 

    时间日志记录  

    缺陷日志记录

  • 相关阅读:
    html table标签 用法
    Python 爬取网页HTML代码
    git push -u origin master报错
    sed -n “3p” filename #输出文件的第3行
    puppet原理及配置
    linux开机启动详细流程
    SHELL日志分析 实例一
    真·blog
    一个傻傻的式子
    LeetCode---2. 两数相加
  • 原文地址:https://www.cnblogs.com/D9412/p/4360781.html
Copyright © 2011-2022 走看看