在课堂上,我和我的伙伴经过讨论,得到了一个最简单的方法。
首先我们可以定义一个整数数组,a[n];n可以为任意正整数,然后我们又定义了子整数组和b[m],利用数学知识可以得到m=n*(n+1)/2;我们可以循环输入得到a[n],在这里,我们定义a[0]=b[0];然后,我们可以利用双重循环,b[i]=b[i-1]+a[i],这样我们得到了子整数数组和b[m],然后,我们利用冒泡排序法,可以得到最大的子整数组和,输出。
然后,因为老师说的那个时间复杂度为0的,实在没有想到,不过我们想到一个好方法,即把数组a[0]分为2个,然后可以得到最大的子整数组和在a[n/2]中或a[n/2...n]中在两个数组中,然后可以利用递归,当然这个我们因为时间问题,没有仔细考虑,只是想了想。
--组员:
20112832周亚豪 20112802姜立比