求子数组之和的最大值采用之前的博客编程之美2.14 求数组的子数组之和的最大值中的动态规划方法,时间复杂度为O(N),在求nAll的过程中,记录子数组和最大值的那个数组的起始位置start跟终止位置end,下面的源码也分成了两种情况处理,一种情况是数组元素全为负的时候返回最大的负数,数组中除了0就是负数的情况则返回最后一次出现的那个0所在的位置(对应于程序的define RETURN_MAXMINUS块);另外一种情况是数组元素全为负数的时候返回0并置start跟end为-1,数组中除了0就是负数的情况则返回第一次出现的那个0所在的位置(对应于define RETURN_ZERO块)。
编程之美2.14扩展问题2 求数组的子数组之和的最大值并给出子数组的起始终止位置
最新推荐文章于 2020-07-18 20:03:09 发布