首页 > 编程语言 > 详细

数组中最大的子数组之和

时间:2021-03-14 15:26:31      阅读:43      评论:0      收藏:0      [点我收藏+]

题目

数组中最大的子数组之和

输入,一个数组,和它的大小 输出,这个数组中最大子数组的和 例如

技术分享图片

 

1.程序代码

代码思路:前一个数与后面的一个数相加,若大于后面的数就替换后面这个数,小于就不变。

def maxSum(seq):
	n = len(seq)
	dp = [i for i in seq]
	for i in range(1, n):
		dp[i] = max(dp[i - 1] + seq[i], seq[i])
	result = max(dp)
	return result

2.单元测试

单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。

class Test(unittest.TestCase):
	def test1(self):
		self.assertEqual(8, maxSum([1,2,5,-4]))
	def test2(self):
		self.assertEqual(4, maxSum([1,2,-5,4,-4]))
	def test3(self):
		self.assertEqual(45, maxSum([-1,20,-5,30,-4]))
	def test4(self):
		self.assertEqual(-1, maxSum([-2,-3,-5,-1,-9]))
	def test5(self):
		self.assertEqual(1, maxSum([1,0,-1,-9]))

if __name__ == ‘__main__‘:
    unittest.main()

用例:

技术分享图片

 

 

测试结果:

技术分享图片

 

 

3.性能测试

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。

测试实例:

使用cProfile分析Python程序性能

测试实例代码:

import time
import cProfile
import pdb
def maxSum(seq):
	n = len(seq)
	dp = [i for i in seq]
	for i in range(1, n):
		dp[i] = max(dp[i - 1] + seq[i], seq[i])
	time.sleep(5)    #  测试执行耗时
	result = max(dp)
	return result
if __name__==‘__main__‘:
	cProfile.run(‘maxSum([1,2,5,-4])‘)

测试结果

技术分享图片

 

 其中,输出每列的具体解释如下:

    ncalls:表示函数调用的次数;
    tottime:表示指定函数的总的运行时间,除掉函数中调用子函数的运行时间;
    percall:(第一个percall)等于 tottime/ncalls;
    cumtime:表示该函数及其所有子函数的调用运行的时间,即函数开始调用到返回的时间;
    percall:(第二个percall)即函数运行一次的平均时间,等于 cumtime/ncalls;
    filename:lineno(function):每个函数调用的具体信息;

  

数组中最大的子数组之和

原文:https://www.cnblogs.com/ruan1999/p/14532302.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!