• 数组中子数组之和最大值


    设计思路:

    1.用随机数产生一定数量的整数,分别用变量控制随机数的正负和范围。

    2.把数组的第一位a[0]设为最大值max和子数组之和sum的初始值,与之后的数目进行比较,如果第二个数大于等与0且sum小于等与0;令sum=第二个数;如果第二个数大于等与0且sum大于0;则sum=+第二个数;如果第二个数小于0且max大于等于0,则sum=0;如果第二个数小于0且max小于于0,则sum=的二个数。最后sum与max选出较大的,就是结果。

    代码:

    #include <iostream>
    #include<cmath>
    using namespace std;

    void main()
    {
      int n,m,i,x,s[100], sum, Max;
     cout<<"输入数组的个数和数组中元素的最大范围";
      cin>> n>>m;
      for(i = 0; i < n; ++i)
      {
       x=rand()%2+1;
       const int y=pow(-1.0,x);
       s[i]=y*rand()%m+1;
     
      }
      for( i = 0; i < n; ++i)
      {
       cout<<s[i]<<" ";
      }
     Max = sum = s[0];
      for(i = 1; i < n; ++i)
      {
          if(s[i] >= 0)
          {
            if(sum <= 0)
              sum = s[i];
            else
              sum = sum + s[i];
          }
          else
          {
            if(Max >= 0)
            {
              sum = 0;
            
            }

            else
              sum = s[i];
          }

          if(sum > Max)
            Max = sum;
       
      }
      cout << "max = " << Max << endl;

    }

    总结:如果用时间复杂度f(n^2)比较容易,但比较难的是把时间复杂度f(n),所以我就上网了搜了一下,找到了简单的算法。所以问题在难,也会有解决的办法,前提就必须有扎实的基础,才能找到更好的办法。

    周活动总结表:

    日期 听课 编写程序 阅读课本 准本考试 日总计
    周日   60 30   90
    周一 200 30 30   260
    周二 500       500
    周三 100 60 30   190
    周四 400 30     430
    周五 300 30 30   360
    周六   60 30   90
    周总结 1500 270 150   1920

    时间记录日志

    日期 开始时间 结束时间 中断时间 净时间 活动 备注
    3/20 10:10 12:00 10 100 听课  
      14:00 15:50 10 100 听课  
      20:00 21:00   60 编程 设计西路
    3/21 9:00 10:00   60 编程

    寻找时间复杂度为f(n)的方法

      19:00 20:00   60 编程  
    3/22 15:00 17:00 30 120 编程  
    3/23 8:00 9:50 10 100 听课  
      10;00 10:45   45 写实验报告  

    缺陷记录日志:

    日期 编号 类型 映入阶段 排出阶段 修复时间 修复缺陷
    3/21 1   编码 编译 1min  
    描述:a没有初始化定义
    2   编码 编译 1min  
    描述:漏掉了分号“;”
    3   编码 编译    
    描述:从“double”转换到“const int”,可能丢失数据
    3/22 4   编码 编译 1min  
    描述:漏掉了“}”
  • 相关阅读:
    Spring事务深入剖析--spring事务失效的原因
    CentOS 安装 VMware Tools 详细方法
    -手写Spring注解版本&事务传播行为
    手写spring事务框架-蚂蚁课堂
    springMvc接口开发--对访问的restful api接口进行拦截实现功能扩展
    spring框架中JDK和CGLIB动态代理区别
    mysql事务的坑----MyISAM表类型不支持事务操作
    git 远程分支和tag标签的操作
    git fetch和git pull的区别
    umask 文件默认权限
  • 原文地址:https://www.cnblogs.com/double1/p/4357554.html
Copyright © 2020-2023  润新知