最长子串

原创 2016年08月29日 23:03:01

求数组的最长子串



var fn = function(arr,sum,index,len) {
    // 无法取的情况
    if(index+len == arr.length){
        return {sum,index,len};
    }

    // 能取的情况
    var list = [];
    // 1.不取
    var notFetch = sum;
    // 2.取下一个
    var fetch = sum+arr[index+len];
    // 如果多fetch一个数字,不比notFetch大,则push notFecth
    if(fetch<notFetch){
        list.push({sum:notFetch,index,len});
    }
    // 2.1 使得sum为负

    // 2.2 使得sum不为负
    if(fetch>=0){
        list.push(fn(arr,fetch,index,len+1));
    }else{
        // 2.3 放弃已经fetch的
        list.push(fn(arr,0,index+1,0));
    }

    return max(list);

};

function max(arr){
    return arr.sort(function(a,b){
        return b.sum - a.sum;
    })[0];
}

console.log(fn([1, 5, -7, 2, 6, -1, 5],0,0,0));
console.log(fn([1, 5, -7, 2, 6, -11, 5],0,0,0));
console.log(fn([1, 5, -4, 2, 6, -1, 5],0,0,0));
console.log(fn([-3,-1],0,0,0));

版权声明:欢迎转载,欢迎加群

相关文章推荐

输出最长子串的代码

  • 2013-11-01 13:59
  • 5.09MB
  • 下载

最长子串代码

  • 2012-11-17 15:55
  • 408B
  • 下载

POJ 3261 Milk Patterns【后缀数组】可重叠的k次最长子串

Description Farmer John has noticed that the quality of milk given by his cows varies from day t...

求字符串的不重复字符的最长子串长度的问题

题目: 已知一个字符串,只含有小写字母,求这个字符串的每个字符都不相同的最长子串的长度。 比如: abcd 结果是4 abcab 结果是3 思路: 用一...

没有重复字符的最长子串

转自leetcode Given a string, find the length of the longest substring without repeating charact...

Longest Substring Without Repeating Characters(无重复最长子串)

Given a string, find the length of the longest substring without repeating characters.(给定一字符串,找出无重复的...

poj3261(可重复k次的最长子串)

题意:可重复k次的最长子串 解题思路:求所有区间[x,x+k-1]中的最小值的最大值。求sa时间复杂度Nlog(N),求最值时间复杂度N*N,但实际复杂度很低。题目数据也比较水,不然估计过不了

2015阿里在线笔试题求两个字符串的最长子串

2、给定一个query和一个text,均由小写字母组成,要求在text中找出以同样的顺序连续出现在query中的最长连续字母序列的长度。例如,query为“acbac”,text为”acaccbabb...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)