最长子串

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

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

最长公共子序列与最长公共子串(DP)

1. 问题描述 子串应该比较好理解,至于什么是子序列,这里给出一个例子:有两个母串 cnblogsbelong 比如序列bo, bg, lg在母串cnblogs与belong中都出现过并且出现顺序...
  • u012102306
  • u012102306
  • 2016年11月16日 11:14
  • 3807

动态规划:求最长公共子串/最长公共子序列

最长公共子序列和最长公共子串区别        最长公共子串(Longest Common Substring)与最长公共子序列(Longest Common Subsequence)的区别: 子串要...
  • u013074465
  • u013074465
  • 2015年04月30日 11:30
  • 11676

hihoCoder#1032_最长回文子串

求最长回文子串的算法比较经典的是manacher算法,下面写写自己的理解。 (文中用到的图片来自这里,博主写的很好,由于为了图片和代码一致,我稍微p了一下图片。) 首先,说明一下用到的数组和其他参...
  • sinat_30071459
  • sinat_30071459
  • 2016年04月02日 19:37
  • 1478

输出最长子串的代码

  • 2013年11月01日 13:59
  • 5.09MB
  • 下载

最长子串代码

  • 2012年11月17日 15:55
  • 408B
  • 下载

寻找字符串中不包含重复字符的最长子串

  • 2017年04月13日 19:45
  • 776B
  • 下载

输出多次出现的最长子串

  • 2014年01月07日 22:40
  • 699B
  • 下载

fzu 2128 最长子串

Problem 2128 最长子串 Accept: 184 Submit: 693 Time Limit: 3000 mSec Memory Limit : 65536 KB Pro...
  • ACM__dongsheng
  • ACM__dongsheng
  • 2016年04月11日 20:17
  • 421

Life Forms 后缀数组 不小于k个字符串中的最长子串

其实还是没搞太懂后缀数组这玩意... 简单来说就是求解不小于k个字符串中的最长子串,k=n/2 思路:将n个字符串连起来,中间用不同且没有在字符串中出现过的字符隔开,然后求后缀数组,再二分答案,判...
  • Odysseia
  • Odysseia
  • 2015年12月05日 16:48
  • 122

FZUOJ-2128 最长子串(strstr函数枚举暴力)

FZUOJ Problem-2128 最长子串(枚举)accept: 183 submit: 669 time limit: 3000 msec memory limit : 65536 ...
  • no_alternantive
  • no_alternantive
  • 2016年04月09日 13:25
  • 253
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:最长子串
举报原因:
原因补充:

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