求子数组最大和的实例代码

2016-02-19 10:53 2 1 收藏

今天图老师小编给大家介绍下求子数组最大和的实例代码,平时喜欢求子数组最大和的实例代码的朋友赶紧收藏起来吧!记得点赞哦~

【 tulaoshi.com - 编程语言 】

题目:
输入一个整形数组,数组里有正数也有负数。
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。
求所有子数组的和的最大值。要求时间复杂度为O(n)。

例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,
因此输出为该子数组的和18。

找到状态转移方程,dp[i]表示前i个数中,包含i的子数组的最大和。要么第i个数自己最大,要么他要和包含i-1的子数组最大和(即dp[i-1])联合在一起.
即dp[i] = max{arr[i],dp[i-1]+arr[i]};

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

代码如下;

代码如下:

#include stdio.h
#define max(a,b) (a)(b)?(a):(b)

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

int res(int* arr, int len){
    //学到一个定义最小数的方法:)
    int max = -(131);
    int i;
    for(i=1;ilen;i++){
        arr[i] = max(arr[i],arr[i-1]+arr[i]);
        if(max arr[i]) max = arr[i];
    }
    return max;
}

int main(){
    int arr[] = {1,-2,3,10,-4,7,2,-5};
    printf("%dn",res(arr,8));
    return 0;
}

来源:https://www.tulaoshi.com/n/20160219/1596036.html

延伸阅读
代码如下: ?xml version="1.0" encoding="utf-8"?  !--      LinearLayout         线性版面配置,在这个标签中,所有元件都是按由上到下的排队排成的   -- LinearLayout      xmlns:android="http://schemas.android.com/apk/res/android...
标签: Web开发
随着时代发展,javascript阵营里面出现了越来越多的优秀的框架,大大简化了我们的开发工作,在我们使用这些框架的时候是不是也应该饮水思源想想它们都是怎样构建起来的呢?如果你不满足于仅仅是使用一些现成的API,而是深入了解它们内部的实现机制(照某人的说法, API是贬值最快的东西),最好的办法就是阅读它们的源代码了,前提是你读得懂。...
标签: Web开发
css 文字排版一向困扰做页面前台工作者,这里汇总了大部分文字的实现效果大家可以举一反三的去运用。 !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" html xmlns="http://www.w3.org/1999/xhtml" head meta http-equiv="Content-Type" content="text/html; chars...
标签: Web开发
代码如下: (function($){ $.fn.extend({ selectColor:function(){ var _d = new Date(); var _tem = _d.getTime(); return this.each(function(){ var showColor = function(_obj){ var _left = parseInt($(_obj).offset().left); var _top = parseInt($(_obj).offset().top); var _width = parseInt($(_obj).width()); var _heigh...
标签: Web开发
在网上发现一个JavaScript小型选择器,其介绍在已经说得挺清楚了,就不再罗嗦了。简单来说,mini选择器只支持以下选择语句: * `tag` * `tag .className` * `tag tag` * `#id tag.className` * `.className tag` * `tag, tag, #id` * `tag#id.className` * `.className` * `span * b` 经过,以上选择语句已经满足了95%以上的需求。...

经验教程

584

收藏

54
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部