【算法】-求一个数组的最大连续数组的值

题目要求:这道题是最近面试某个互联网公司的时候遇到的。题目大概是:给定一个数组A[]={1,-5,-3,2,7,-8,4},求其中连续的几个数的最大的和是多少。

最开始的思路,是从第一个数开始,计算第一个数为开始位置到最后一个数过程中所有的子数组的和,然后在计算第二个数为开始位置到最后一个数过程中所有的子数组的和,……,直到计算最后一个数的和。这个过程一个嵌套的for循环语句就可以了。

因为这个方法的时间复杂度为O(N^2),不是很理想,还有一种更省时的方法。

更省时的思路:利用DP的思想,在对每次循环进行求和时,如果前面的部分对后面是“负贡献”的话,我们就应该”舍弃”前面的部分,从当前位置作为子数组开始的位置。这样,只需要遍历这个数组一次就可以,时间复杂度减小至O(N)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.把二元查找树转变成排序的双向链表 题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 要求不...
    曲终人散Li阅读 3,378评论 0 19
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,779评论 0 33
  • 本文出自 Eddy Wiki ,转载请注明出处:http://eddy.wiki/interview-code.h...
    eddy_wiki阅读 9,379评论 0 30
  • 有一对年青人,选了良辰吉日准备结婚。但令人想不到的是,在结婚的前一天女方生下了孩子,孩子是这个男孩的。 第二天男孩...
    简单明了阅读 167评论 0 0
  • 2016——记忆旅行,畅游山西。 We Are On The Way。 序: 告别了喧嚣的城市, 忘却了学习的烦恼...
    卡布叻ka阅读 1,376评论 0 0