结对项目——最大子数组

求数组中最大子数组的和

一、程序要求

1、返回一个整数数组中最大子数组的和;

2、输入一个整数数组,数组中有正数也有负数;

3、数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和;

4、求所有子数组的和的最大值,要求时间复杂度为O(n);

二、程序设计思想

    数组的长度和各个元素由键盘键入。先将各元素累加,每加一个数,看结果是否为0,若为0,重置结果,并且结果与最大子数组和(简称最大和)比较,若有更大的和,就保存较大的结果到最大和中。若最大和与结果的值均为0,说明数组为负数数组,最大子数组即为最大元素。

三、源程序

//李俏、张莹荧,2016.3.21
//求整数数组的最大子数组的和

#include<iostream>
using namespace std;int main()
{int arrlength,i;int j;int maxsum=0,sum=0;int arr[100];cout<<"请输入数组长度:";cin>>arrlength;if(arr==NULL||arrlength==0){//exit(1);return 0;}cout<<"请输入数组元素:";for(i=0;i<arrlength;i++){cin>>arr[i];}maxsum=0;sum=0;for(i=0;i<arrlength;i++){sum=sum+arr[i];//累加if(sum<0)      //当前和小于0,重置为0
        {sum=0;}if(sum>maxsum) // 当前和大于最大和,则重置最大和 
        {maxsum=sum;}}if(maxsum==0)      //maxsum=0,说明数组中的数值均为负数
    {maxsum=arr[0];for(i=1;i<arrlength;i++){if(arr[i]>maxsum)//求出负数数组的最大值
            {maxsum=arr[i];}}}cout<<"最大子数组的和为:"<<maxsum<<endl;return 0;//for(i=0;i<arrlength;i++)//{//    sum=0;//    for(j=0;j<arrlength;j++)//    {//        sum += arr[j];//        if(sum<0)      //当前和小于0,重置为0//        {//            sum=0;//        }//        if(sum>maxsum)//        {//            maxsum=sum;//        }//    }//}//cout<<"最大子数组的和为:"<<maxsum<<endl;//return 0;
}

 

四、结果截图

五、项目计划日志

周活动总结表  

姓名:李俏          日期:2016年3月19日

日期   任务听课 编写程序阅读课本准备考试  日总计

周日(3.20)

 3030    60

周一

1203030   180

周二

 3030   60

周三

 3030   60

周四

120 30   150

周五

 18030   210

周六

 6030   120

周总结

240360

210

   810

 

 

 

 

 

 

 

 

 

 

 

 

 

六、时间记录表:

学生:   李 俏                         日期 :2016年3月12日 

教师:   王建民                        课程 :软件工程      

日期

开始时间

结束时间

中断时间

净时间

活动

备注

 3.21

16:30

17:00

30

编写程序 

作业 

 

20:10

20:40

30

阅读

作业

 3.22

19:10

19:50

10

30

编写程序

作业

 

20:00

20:30 

30

阅读

 作业

 3.23

14:30

15:30

30min

30

编写程序

 作业

 

20:00

20:30 

30

阅读

 作业

3.24

18:50

19:20

30

编写程序

作业

 

20:00

20:30

30

阅读

 作业

 3.25

13:20

18:00

100 

180

编写程序

 作业

 

21:10

21:40

30

阅读

 作业

 3.26

12:00

 13:30

 30min

60

编写程序

 作业

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

七、缺陷记录日志:

学生        李俏,张莹荧    

日期       20163月25日   

教员          王建民       

程序号    2  

日期 编号类型引入阶段排除阶段修复时间修复缺陷
 3.24 1计算设计编译10min 
描述: 计算不出结果。
 3.24 2结果编码编译5min 
描述: 没有考虑纯负数数组。
 3.24 3算法编码查资料、问同学30min 
描述:时间复杂度不符合要求。

 

 

 

 

 

 

 

 

 

 

 

八、工作照片 

小伙伴:张莹荧(http://www.cnblogs.com/zhyying/)

转载于:https://www.cnblogs.com/Aliqiao/p/5321866.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/470908.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python的GUI编程和tkinter学习笔记——第一个GUI程序

一、第一个GUI程序 from tkinter import * from tkinter import messagebox# 创建窗口 root Tk()btn01 Button(root) btn01["text"] "点我就送花"btn01.pack()def songhua(e): # e就是事件对象messagebox.showinfo("Message","送你一朵…

LeetCode 2331. 计算布尔二叉树的值(树的遍历)

文章目录1. 题目2. 解题1. 题目 给你一棵 完整二叉树 的根&#xff0c;这棵树有以下特征&#xff1a; 叶子节点 要么值为 0 要么值为 1 &#xff0c;其中 0 表示 False &#xff0c;1 表示 True 。非叶子节点 要么值为 2 要么值为 3 &#xff0c;其中 2 表示逻辑或 OR &#…

linux内核启动以及文件系统的加载过程

Linux 内核启动及文件系统加载过程 当u-boot 开始执行 bootcmd 命令&#xff0c;就进入 Linux 内核启动阶段。普通 Linux 内核的启动过程也可以分为两个阶段。本文以项目中使用的 linux-2.6.37 版源码为例分三个阶段来描述内核启动全过程。第一阶段为内核自解压过程&#xff0c…

LeetCode 2335. 装满杯子需要的最短总时长

文章目录1. 题目2. 解题1. 题目 现有一台饮水机&#xff0c;可以制备冷水、温水和热水。每秒钟&#xff0c;可以装满 2 杯 不同 类型的水或者 1 杯任意类型的水。 给你一个下标从 0 开始、长度为 3 的整数数组 amount &#xff0c;其中 amount[0]、amount[1] 和 amount[2] 分…

Linux实操篇——实用指令学习笔记(详解)

9.3帮助指令 9.3.1介绍 当我们对某个指令不熟悉时&#xff0c;我们可以使用Linux提供的帮助指令来了解这个指令的使用方法。 9.3.2man 获得帮助信息 基本语法 man[命令或配置文件]&#xff08;功能描述&#xff1a;获得帮助信息&#xff09;应用实例 案例&#xff1a;查看1…

LeetCode 2249. 统计圆内格点数目

文章目录1. 题目2. 解题1. 题目 给你一个二维整数数组 circles &#xff0c;其中 circles[i] [xi, yi, ri] 表示网格上圆心为 (xi, yi) 且半径为 ri 的第 i 个圆&#xff0c;返回出现在 至少一个 圆内的 格点数目 。 注意&#xff1a; 格点 是指整数坐标对应的点。 圆周上的…

Python实现自动发送邮件(详解)

Python实现自动发送邮件 1.开启SMTP服务 为了实现自动发送邮件的目的&#xff0c;我们需要在邮箱中开启SMTP服务&#xff1a; 这点很关键&#xff0c;别忘了去开启SMTP&#xff0c; 别忘了去开启SMTP&#xff0c;否则邮件是无法发送成功的 。然后你还需要点击下面生成授权…

React 组件:计时器例子

文章目录1. 将应用程序分解为组件2. 构建应用静态版本3. 哪些组件是有状态的4. 每个 state 应该在哪个组件里5. 硬编码初始化state6. 添加反向数据流7. 添加服务器通信learn from 《React全家桶&#xff1a;前端开发与实例详解》https://zh-hans.reactjs.org/tutorial/tutorial…

一、快速开始一个 MyBatis项目(详解)

1.0 概述 1.三层架构 界面层&#xff1a; 和用户打交道的&#xff0c; 接收用户的请求参数&#xff0c; 显示处理结果的。&#xff08;jsp &#xff0c;html &#xff0c;servlet&#xff09; 业务逻辑层&#xff1a; 接收了界面层传递的数据&#xff0c;计算逻辑&#xff0c;…

2013 ACM区域赛长沙 K Pocket Cube hdu 4801

题意:给了一个2*2的魔方..每步操作可以将任意一面翻转90度..现在问在N(<7)步内.最多能翻出几面相同的. 直接打表模拟每种翻转情况 1 #include<cstdio>2 #include<cstring>3 #include<algorithm>4 #include<iostream>5 using namespace std;6 7 int …

React 组件和服务器

文章目录1. 请求服务器数据2. 发送开始停止请求3. 发送创建、删除、更新请求learn from 《React全家桶&#xff1a;前端开发与实例详解》https://zh-hans.reactjs.org/tutorial/tutorial.htmlhttps://zh-hans.reactjs.org/docs/create-a-new-react-app.html#create-react-app服…

二、MyBatis常用对象分析 封装工具类

1.0 MyBatis 对象分析 &#xff08;1&#xff09; Resources 类 Resources 类&#xff0c;顾名思义就是资源&#xff0c;用于读取资源文件。其有很多方法通过加载并解析资源文件&#xff0c;返回不同类型的 IO 流对象。 &#xff08;2&#xff09; SqlSessionFactoryBuilder…

iOS图片拉伸技巧

纵观移动市场&#xff0c;一款移动app&#xff0c;要想长期在移动市场立足&#xff0c;最起码要包含以下几个要素&#xff1a;实用的功能、极强的用户体验、华丽简洁的外观。华丽外观的背后&#xff0c;少不了美工的辛苦设计&#xff0c;但如果开发人员不懂得怎么合理展示这些设…

LeetCode 2341. 数组能形成多少数对

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始的整数数组 nums 。在一步操作中&#xff0c;你可以执行以下步骤&#xff1a; 从 nums 选出 两个 相等的 整数从 nums 中移除这两个整数&#xff0c;形成一个 数对 请你在 nums 上多次执行此操作直到无法继续执行。 返…

三、MyBatis 使用传统 Dao 开发方式

1.0 使用 Dao 的实现类,操作数据库 1.0.1 Dao 开发 &#xff08;0&#xff09;定义接口StudentDao 及创建接口的映射文件StudentDao .xm package com.zep.dao;import com.zep.domain.Student;import java.util.List;public interface StudentDao {List<Student> selec…

LeetCode 2347. 最好的扑克手牌

文章目录1. 题目2. 解题1. 题目 给你一个整数数组 ranks 和一个字符数组 suit 。你有 5 张扑克牌&#xff0c;第 i 张牌大小为 ranks[i] &#xff0c;花色为 suits[i] 。 下述是从好到坏你可能持有的 手牌类型 &#xff1a; "Flush"&#xff1a;同花&#xff0c;五…

四、MyBatis 框架 Dao 动态代理

1.1 步骤 &#xff08;1&#xff09; 去掉 之前编写的Dao 接口实现类 &#xff08;2&#xff09; getMapper 获取代理对象 只需调用 SqlSession 的 getMapper()方法&#xff0c;即可获取指定接口的实现类对象。该方法的参数为指定 Dao接口类的 class 值。 不使用工具类&…

五、深入理解Mybatis中的参数parameterType (传递一个简单参数,传递多个参数:@Param、使用自定义对象、按位置、使用Map)

1.1 parameterType parameterType: 接口中方法参数的类型&#xff0c; 类型的完全限定名或别名。这个属性是可选的&#xff0c;因为 MyBatis可以推断出具体传入语句的参数&#xff0c;默认值为未设置&#xff08;unset&#xff09;。接口中方法的参数从 java 代码传入到mapper…

六、封装 MyBatis 输出结果resultType、resultMap 以及 数据库表中列名和返回对象属性名不一致的2种解决方案(详解)

1.1 resultType resultType: 执行 sql 得到 ResultSet 转换的类型&#xff0c;使用类型的完全限定名或别名。 注意&#xff1a;如果返回的是集合&#xff0c;那应该设置为集合包含的类型&#xff0c;而不是集合本身。resultType 和 resultMap&#xff0c;不能同时使用。 A、…

API 接口批量测试

ApiPost 创建接口 导入要测试的数据 测试结果 ApiFox 创建接口 导入接口 导入测试数据&#xff0c;可以直接编辑&#xff0c;粘贴进来 测试结果