最長遞增子串行 程式設計之美2 16

2021-06-21 12:21:10 字數 883 閱讀 1353

問題:給定乙個序列an

=a1,a2,  ... , an

,找出最長的子串行使得對所有i

< j,ai

。1.用動態規劃實現——求最長的子串行長度

int longestincreasesubserial(int* array, int length) 

//初始化各個子串行的最大長度

int* currentmax = new int[length];

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

for (int i = 0; i < length; ++i) +1(i=0,1,...,k),否則其等於1.

currentmax[i] = std::max(currentmax[j] + 1, currentmax[i]);

}} }

int longest = 0;

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

delete currentmax;

return longest;

}

測試**

/*

* longestcommomserialmain.cpp

* * created on: 2014-4-11 14:40:08

* author: dandingcongrong

*/#includeusing namespace std;

//輸入各個陣列元素

void inputarray(int* array, int length)

}int main()

return 0;

}



程式設計之美 2 16 求陣列中最長遞增子串行

1.簡述 寫乙個時間複雜度盡可能低的程式,求乙個一維陣列中最長遞增子串行的長度。例如在序列1,1,2,3,4,5,6,7中,其最長的遞增子串行的長度為4 如1,2,4,6 2.思路 這個題目與前面求一維陣列中子陣列之和最大值有點像,不過區別還是很明顯,比如 子陣列是陣列中一串連續相鄰的數字,而子串行...

最長遞增子串行程式設計之美232演算法

include include int a 100 儲存原始序列 int lis 100 儲存以a i 為最大元素的最長遞增子串行的長度 int maxv 100 儲存長度為i的遞增子串行最大元素的最小值 int n 儲存原始序列的長度 int min int b printf 最大值是 d tem...

程式設計之美 最長遞增序列

從這道題目上 可以分析 最長子序列 要求的是 後面的元素 要比前面的元素大。我們記錄 陣列中元素 每乙個位置對應的最長子序列長度 當新加入的元素 大於前面的某個元素時,則對應的位置的最長序列長度 1 如下 include stdio.h int main int len sizeof data si...