求最大字串和

算法是前人的智慧,我虽不敏,请事斯诸语。

#include <stdio.h>

int max_adj(int a[], int len){
    int sum=0, max = a[0];
    int i=0;
    for (;i<len;i++){
        sum = sum + a[i];
        if (sum > max) {
            max=sum;
        }
        if(sum < 0){
            sum=0;
        }
    }
    return max;
}

int main(){

    int a[] = {1,2,3,-1,-20,100,34};
    int res;
    int len;
    len = sizeof(a)/sizeof(int);
    printf("%d\n",len);
    res = max_adj(a,len);
    printf("%d\n", res);

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-07-31 17:07:04

求最大字串和的相关文章

最大字串和

最大字串和: #include <iostream> using namespace std; //求最大字串和:返回最大和 int maxSubSum(int a[], int len) { int sum = 0; //全局最大值 int temp = 0; //局部最大值 for(int i = 0; i < len; ++i) { if(temp > 0) //如果局部最大值大于0,则继续求和,否则以数组当前元素重新初始化 { temp += a[i]; } else te

leetcode——Longest Substring Without Repeating Characters 求链表中无重复字符的最大字串长度(AC)

mnesia在频繁操作数据的过程可能会报错:** WARNING ** Mnesia is overloaded: {dump_log, write_threshold},可以看出,mnesia应该是过载了.这个警告在mnesia dump操作会发生这个问题,表类型为disc_only_copies .disc_copies都可能会发生. 如何重现这个问题,例子的场景是多个进程同时在不断地mnesia:dirty_write/2 mnesia过载分析 1.抛出警告是在mnesia 增加dump

【循环数组的最大字串和】Maximal-sum Subsequence

[循环数组的最大字串和]Maximal-sum Subsequence PROBLEM 题目描述 给一个 N×N 的矩阵 M,可以取连续的一段数(必须是横着或者竖着或者斜着,这个矩阵是循环的,具体如下).要求找到一个子序列,使得这个序列的和最大. 对于 N=8 的矩阵,如下序列都是合法的: ? M2,1,M2,2,M2,3,M2,4,M2,5,M2,6,M2,7,M2,8. ? M2,2,M2,3,M2,4. ? M2,6,M2,7,M2,8,M2,1,M2,2. ? M4,3,M5,3,M6,

poj3080(Blue Jeans)kmp求多个串公共子串

题意:给出1-10个长度为60的字符串,求出最长的公共子串(长度不能小于3),如果有多个一样长的,输出字典序最短的. 解法:想到kmp时,自己第一反应枚举第一个串的所有子串,在其他所有串中走一遍kmp,复杂度为10*60*60*60,但是发现只需枚举第一个串后缀就可以,每次枚举记录在所有串能走最远中走的最短的那个长度.这样复杂度就成了10*60*60,0ms AC. 代码: /**************************************************** * autho

马拉车,O(n)求回文串

body { font-family: sans-serif; font-size: 14px; line-height: 1.6; padding-top: 10px; padding-bottom: 10px; background-color: white; padding: 30px } body>*:first-child { margin-top: 0 !important } body>*:last-child { margin-bottom: 0 !important } a

数据结构——算法之(032)(求两个串中的第一个最长子串)

[申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出. 联系邮箱:[email protected]] 题目: 求两个串中的第一个最长子串(神州数码曾经试题).如"abractyeyt","dgdsaeactyey"的最大子串为"actyey". 题目分析: 1.这里仅仅是实现了简单的字符串算法(最大支持字符串长度64),主要是展示算法思想 2.思路是把2个字符串每一个字符的匹配关系,映射到一张二维数组表中,匹配写1,非匹配写0 算法实现

求两个串的最大子序列(非字串)

问题:求两个串的最大子序列(并非连接的) Java代码: import java.util.Set; import java.util.StringJoiner; public class Main { public static int getL(String a, String b) { if (a.isEmpty()||b.isEmpty()) return 0; if (a.charAt(0) == b.charAt(0)) return getL(a.substring(1), b.s

Palindrome - URAL - 1297(求回文串)

题目大意:RT 分析:后缀数组求回文串,不得不说确实比较麻烦,尤其是再用线段数进行查询,需要注意的细节地方比较多,比赛实用性不高......不过练练手还是可以的. 线段数+后缀数组代码如下: =========================================================================================================================================== #include<stdio

E - Power Strings,求最小周期串

E - Power Strings Time Limit:3000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status Practice POJ 2406 Description Given two strings a and b we define a*b to be their concatenation. For example, if a = "abc" and b = &