今天做了一个程序是实现结对編程的小项目,项目是寻找一组数组中最大的一组子数组(条件是数组必须连续)通过我们模拟一组数据:
首先是选定一个初始值假如是a[0],则第二个数是a[0]+a[1]........可以这样理解:
然后通过每一层进行比较,得出一层的Max与下层继续比较,直到找到最大相邻的子数组的和
第一个循环内部的语句需要执行N次,而每次执行外部循环时第二个循环内的语句至多执行N次,所以总的运行时间为O(n*n),而并没有达到老师所要求嘚水平即O(n),
可以考虑到如果检测所有的那些值的话,算法至少花费二次方的的时间所以引出来是否可以有一个更好的方法能更有效地得絀结果?
这种算法很好充分利用了动态规划解决问题而且算法的时间复杂度为O(n).