课程练习的设计过程

Posted wangbowu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了课程练习的设计过程相关的知识,希望对你有一定的参考价值。

  在新的软件工程课堂上,老师留了一个课堂练习小题。

  问题描述:返回一个整数数组中最大子数组的和。

  要求:(1)输入一个整形数组,数组里有正数,也有负数。

           (2)数组中连续的一个或多个整数组成了一个子数组,每个子数组都有一个和。

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

  设计思路:假设存在一个整形数组,长度为n,其中数组中既有正数,也有度数。

首先遍历一遍整个数组,找出数组中所有的负数,并将每两个相邻的负数间的所有正数数组记为i[1],i[2],i[3]……

则整个数组就变为i[1]  a1  i[2]  a2  i[3]  a3……(其中a代表所有负数)。

第二步,找出所有正数数组中和最大的数组i[m]。

第三步,整个数组就像这样…… i[m-1]  a(m-1)     i[m] am i[m+1]………记k=i[m]分别求出k(1)=i[m]+a(m-1)+i[m-1]

k(2)=i[m]+a(m-1)+i[m-1]+a(m-2)+i[m-2]一直向i[m]前面相加。最后在k,k(1),k(2)……中取出最大值k(m)。

第四步,以相同的方法将i[m]后面的最大值求出来,记为l(n)。

则整个数组的最大数组的和就是k(m)+l(n),最大值的数组就是其对应的数组。

 

以上是关于课程练习的设计过程的主要内容,如果未能解决你的问题,请参考以下文章

2017-2018-2 1723 『Java程序设计』课程 结对编程练习_四则运算第三周总结

2017-2018-2 20172310『Java程序设计』课程 结对编程练习_四则运算_第二周

2017-2018-2 20172323 『Java程序设计』课程 结对编程练习_四则运算 2

20172315『Java程序设计』课程 结对编程练习_四则运算第二周阶段总结

2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-准备阶段

本科课程java程序设计实验2 - 类与对象编程练习