版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明
思路就是,取出所有可能的子数组即找出所有可能的0≤i≤j≤n,然后求出数组从i到j嘚所有数的和再对比这样的方法时间复杂度较高,python实现如下:
提示超时最终执行的输入如下:此时的时间复杂度为O(n^3)
这一步求和的时候,每次没有必要从i到j完整求和只要存储了上一次求和的结果,之后只要在前面求和的基础上继续累加就可以
具体方法就是,把sums=0在j循环の前声明j进行循环时,每次求和是在前一次求和的基础上再加上num[j]:
此时超时的结果为有提升:
时间复杂度此时为O(n^2)