【第22期】观点:IT 行业加班,到底有没有价值?

最长子串

原创 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));

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

相关文章推荐

[Leetcode #3]Longest Substring Without Repeating Characters 无重复字符的最长子串

原题地址:https://leetcode.com/problems/longest-substring-without-repeating-characters/ 题目要求是:给定一个字符串,找出...

LeetCode Problem:求字符串的最长子串,子串的字符各不相同

Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters for "abcabcbb" is "abc", which the length is 3. For "bbbbb" the long

和为1的最长子串长度

题目描述:一个一位数组中只有1和-1,实现程序,求和为0的最长子串长度。 利用动态规划,Len0[i]表示以第i位结尾和为0的最长子串长度,Len1[i]表示以第i位结尾和为1的最长子串长度,Len2...

写出两个字符串的所有最长子串

如题,C# codes 如下: <span

查找字符串中无重复最长子串的长度

题目:输入是一个字符串,找出没有重复字符的最长子字符串的长度 示例: “abcabcbb”最长子串(abc)长度为3 “bbbbbbb”最长子串(b)长度为1 “abdevbac”最长子串(b...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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