原文:输入一个整型数组,数据元素有正数也有负数,求元素组合成连续子数组之和最大的子数组,要求时间复杂度为O(n)。

如果不考虑时间复杂度,我们可以枚举出所有子数组并求出他们的和。不过非常遗憾的是,由于长度为n的数组有O n 个子数组 即:n n ... n n 而且求一个长度为n的数组的和的时间复杂度为O n 。因此这种思路的时间是O n 。 上边这句话不是原创。 我承认脑子比较笨,只把仨for嵌套的做出来了,时间复杂度为O n 的,真的想不通,想了好久,好久,直到最后从网上搜到了这道题,才发现原来这道题真的 ...

2015-03-23 22:28 2 3555 推荐指数:

查看详情

[java实现]找一个数组最大和的连续数组(时间复杂度 O(n))

收藏一下,请直接点击原帖地址:http://blog.csdn.net/hpf911/article/details/9275583 这是《剑指Offer》中的一道题目,数组中的元素可能是正负,所以连续组求和,会变大也可能变小,解题时首先要求当前的和(初始值为0)和下一个元素求和后 ...

Sun Apr 24 07:15:00 CST 2016 0 2571
两个有序数组合并成一个有序数组(要求时间复杂度O(n))

面试题: 怎样把两个有序数组合并成有序数组呢 逻辑步骤: 1.假设两个数组为A和B 2.A和B都是从小到大的顺序进行排列 ** 1.我们可以直接比较两个数组的首元素,哪个小就把这个小元素放入可变数组。 2.把小元素所在的数组中的这个元素删除。 3.继续比较两个数组中的首 ...

Tue Mar 12 19:15:00 CST 2019 0 1891
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM