1. 程式人生 > >最大子陣列之和、最大子陣列之積、最長遞增子序列求法

最大子陣列之和、最大子陣列之積、最長遞增子序列求法

#include<iostream>
#include<math.h>
using namespace std;
int  max(int a,int b){
	return a>b?a:b;
}
int FindGreatestSumOfSubArrey(int input[],int length){
	int TempSum=input[0];
	int MaxSum=TempSum;
	for (int i = 1;i < length; i++){
		TempSum = max(TempSum + input[i],input[i]);
		MaxSum = max(TempSum,MaxSum);
	}
	return MaxSum;
}

int main(){
	int input[] = {1,-2,-5,3,5};
	cout<<FindGreatestSumOfSubArrey(input,5)<<endl;// 結果為8
	return 0;
}

相關推薦

大子陣列之和大子陣列遞增序列求法

#include<iostream> #include<math.h> using namespace std; int max(int a,int b){ return a>b?a:b; } int FindGreatestSumOfSubArrey(int

] 找工作知識儲備(2)---陣列字串那些經典演算法:大子序列和,遞增序列公共串,公共序列,字串編輯距離,不重複串,迴文

作者:寒小陽 時間:2013年9月。 0、前言         這一部分的內容原本是打算在之後的字串或者陣列專題裡面寫的,但看著目前火熱進行的各家網際網路公司筆試面試中,出現了其中的一兩個內容,就隨即將這些經典問題整理整理,單寫一

大子序列遞增序列公共公共序列字串編輯距離總結

一、最大子序列 即找出由陣列成的一維陣列中和最大的連續子序列。例如{5, -6, 4, 2}的最大子序列是{4, 2},它們的和是6。 思路:假設陣列為num,用dp[i]儲存當遍歷到num[i]時,num[0]~num[i]之間求得的最大子序列的和。 遍歷num,當遍歷到nu

大子段和與遞增序列(貪心與動態規劃)

話不多說先上程式碼。。。。。  最大子段和 題目描述 給出一段序列,選出其中連續且非空的一段使得這段和最大。 輸入輸出格式 輸入格式:   第一行是一個正整數NNN,表示了序列的長度。 第二行包含NNN個絕對值不大於100001000010000的

學習筆記:求陣列遞增序列LIS

陣列的最長遞增子序列LIS是一類經典問題。例如陣列2,1,5,3,6,4,8,9,7。此陣列的LIS為1,3,4,8,9長度為5。 如果用經典的動態規劃演算法求解的話,設f[i]為以i結尾的LIS的長度。例如求f[8],即以8結尾的LIS的長度,那麼f[ 8]=max{ f

Java基礎練習05--陣列遞增序列長度

小猴子下山,沿著下山的路有一排桃樹,每棵樹都結了一些桃子。小猴子想摘桃子,但是有一些條件需要遵守,小猴子只能沿著下 山的方向走,不能回頭,每顆樹最多摘一個,而且一旦摘了一棵樹的桃子,就不能再摘比這棵樹結的桃子少的樹上的桃子。那麼小 猴子最多能摘到幾顆桃子呢? 舉例說明,比如有5棵樹,分別結了10,4

給定一個整數陣列,求它的一個遞增序列

題目描述:如題。 樣例:     輸入 :     5     1 5 2 3 6 9     輸出:     1 2 3 6 9 分析:     本題最好的解法是使用動態規劃,首先要想明白一個問題:如何找到以a[n]作為最後一個元素的最長子列。     要找到以a[n]作

求整數陣列中的遞增序列長度

昨天在複習軟考的時候發現了這樣的一個演算法,有些地方確實經過一番推敲才搞懂,今天來整理記錄一下~ 動態規劃通常用來求解最優化問題,在這類問題中,我們通過做出一組選擇來達到最優解。在做出每個選擇的同時,通常會生成與原問題形式相同的子問題。當多於一個選擇子集都生成相同的子問題時

遞增序列問題(演算法導論作業15.4-515.4-6)

問題描述 對於長度為n的序列S[1...n],找出長度最大的子序列,其子序列的每個元素均遞增。 15.4-5、時間複雜度O(n^2) 剛看到這題時,想到了個投機取巧的方法。因為書中此節介紹了LCS(最長公共子序列)演算法,於是可以直接將這個序列排序O(nlogn),然後

動態規劃(三)遞增序列LIS大連續序列大連續序列乘積

最長遞增子序列LIS 問題 給定一個長度為N的陣列,找出一個最長的單調自增子序列(不一定連續,但是順序不能亂)。例如:給定一個長度為6的陣列A{5, 6, 7, 1, 2, 8},則其最長的單調遞增子序列為{5,6,7,8},長度為4. 最長遞增子序列

leetcode遞增序列問題

wan details img mat 最後一個元素 例如 公式 back 一個 題目描寫敘述: 給定一個數組,刪除最少的元素,保證剩下的元素是遞增有序的。 分析: 題目的意思是刪除最少的元素。保證剩下的元素是遞增有序的,事實上換一種方式想,就是尋找最長的遞增有序序列。

[網絡流24題]遞增序列問題 大流

size 個數 clu 編程 input num pac ros ini Description 給定正整數序列x1 ,... , xn 。 (1)計算其最長遞增子序列的長度s。(嚴格遞增) (2)計算從給定的序列中最多可取出多少個長度為s的遞增子序列。 (3)如果允

[luoguP2766] 遞增序列問題(大流)

close spl 方法 emp 路徑 pid code display div 傳送門 題解來自網絡流24題: 【問題分析】 第一問時LIS,動態規劃求解,第二問和第三問用網絡最大流解決。 【建模方法】 首先動態規劃求出F[i],表示以第i位為開頭的最長上

【51NOD-0】1134 遞增序列

子序列 can algorithm view hide 但是 open sin cst 【算法】動態規劃 【題解】經典模型:最長上升子序列(n log n) #include<cstdio> #include<algorithm> #includ

遞增序列

str ear ont longest esp 一個 for n+1 div 1. 動態規劃,使用一個數組保存當前的最大遞增子序列長度,時間復雜度為O(N^2) # include <iostream> # include <cstdlib&

51nod 1376 遞增序列的數量(不是dp哦,線段樹 +  思維)

sort 是個 can stream const 方便 long 序列 printf 題目鏈接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1376 題解:顯然這題暴力的方法很容易想到

51nod 1218 遞增序列 V2(dp + 思維)

ear www str tdi binsearch tor con bsp href 題目鏈接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1218 題解:先要確定這些點是不是屬於最長

LCS 51Nod 1134 遞增序列

lcs ios else turn () black n) sca ret 給出長度為N的數組,找出這個數組的最長遞增子序列。(遞增子序列是指,子序列的元素是遞增的) 例如:5 1 6 8 2 4 5 10,最長遞增子序列是1 2 4 5 10。 Input

遞增序列(只求大小)模板

初始化 輸入 div 分法 下界 ive tdi color ostream #include<iostream> #include<cstdio> #include<cstring> #include<algorithm>

dp-遞增序列 (LIS)

一個數 bsp 註意 str 只有一個 自然 end alt ace 首先引出一個例子 問題 :   給你一個長度為 6 的數組 , 數組元素為 { 1 ,4,5,6,2,3,8 } , 則其最長單調遞增子序列為 { 1 , 4 , 5 , 6 , 8 } , 並且長度