求整數序列的最大子串行和

2021-06-26 00:48:22 字數 600 閱讀 4514

面試被問到這個題,第一反應是用動態規劃,結果沒規劃出來。。算了,不提了。。

面試回來上網找找解法,這篇文章寫的很好,不過對於一點不同意,求子序列位置的話最好的演算法並不是o(nlogn)的解法,修改一下它給出的o(n)的演算法即可。下面給出**,函式輸入乙個整數序列,返回和最大的子串行。

package test;

public class test ))

system.out.println();

for( int a : ms(-2, 11 ,-4, 13, -5, -2))

system.out.println(); }

private static int ms(int... a) //這樣宣告函式是不是顯得高大上一點。。

else if(temp < 0)

}//構造子串行

int sub = new int[r-l+1];

for(int i = 0;i < sub.length;i++)

sub[i] = a[i+l];

return sub; }

}

5 3 2 -1 6 -9 10 

11 -4 13 

求序列的最大子串行

看 程式設計珠璣 一書,講解求序列的最大子串行。問題 給定乙個實數序列x1,x2,xn 不必是正數 尋找乙個連續的子串行xi,x i 1 xj,使得其數值之和在所有連續子串行數值之和中是最大的。演算法1思路 比較所有連續序列數值的和,找到最大的。1.maxsofar 0 2.for i 0,n 3....

求最大子串行和

include using namespace std int maxseqsum const int a,int n o n 2 return s2 int maxseqsum2 const int a,int n o n else if s1 0 return s2 int maxseqsum3...

求連續序列的最大子串行和

求乙個序列的最大子串行和,這個可以有幾種方法都可以去求解,這裡我提供兩種方法給大家。假如這個序列是,顯然最大子串行和是7,那麼這個要怎麼去計算呢?第一種方法就是順序求取,可以先算一下只有乙個元素的最大值是多少,再算一下連續兩個元素的最大值是多少,再算一下連續三個元素的最大值是多少 直到n個元素全部都...