#include using namespace std;
int getvalue(dequed, listtemp)
return temp.size()
;}void final(dequed, listtemp)
else
for (auto it
:temp)
printf
("%d ", it);}
int main()
//temp[i]即從d陣列中選取i+1個元素構成遞增序列(必須從小到**,可跳過的選擇)
//假設此時i為2,則會有很多種排列方式(遞增序列)
//則temp[i]的值為(所有排列(在i為2的條件下)中最右端的元素(即每種排列方式的最右端資料即最大的資料)
) 最小的元素
//則i為2時有以下幾種排列方式
//2 5 6, 2 5 8, 2 5 9, 2 5 7
//1 5 6, 1 5 8, 1 5 9, 1 5 7
//2 3 6, 2 3 4, 2 3 8, 2 3 9, 2 3 7
//1 3 6, 1 3 4, 1 3 8, 1 3 9, 1 3 7
//則所有最右端資料有6,8,9,7,4
//所以temp[2]=4
//temp[0]即為乙個元素的最小值
final
(d, temp)
; return 0;
}
#include using namespace std;
int getvalue(dequed, int *temp));
return len;
}void final(dequed, int *temp)
else
for (int i = 0; i < len; i++)
printf
("%d ", temp[i]);}
int main()
//temp[i]即從d陣列中選取i+1個元素構成遞增序列(必須從小到**,可跳過的選擇)
//假設此時i為2,則會有很多種排列方式(遞增序列)
//則temp[i]的值為(所有排列(在i為2的條件下)中最右端的元素(即每種排列方式的最右端資料即最大的資料)
) 最小的元素
//則i為2時有以下幾種排列方式
//2 5 6, 2 5 8, 2 5 9, 2 5 7
//1 5 6, 1 5 8, 1 5 9, 1 5 7
//2 3 6, 2 3 4, 2 3 8, 2 3 9, 2 3 7
//1 3 6, 1 3 4, 1 3 8, 1 3 9, 1 3 7
//則所有最右端資料有6,8,9,7,4
//所以temp[2]=4
//temp[0]即為乙個元素的最小值
final
(d, temp)
; return 0;
}
最長遞增子串行 動態規劃
問題描述 輸入一組亂序的資料,輸出這組資料的最長的遞增序列,如輸入x 2 8 9 4 6 1 3 7 5 10 則輸出 2 4 6 7 10 求解最長遞增子串行的問題,我們考慮用動態規劃,而動態規劃,我們就得弄清楚子問題,最終的解決辦法如下 1.在遍歷資料的過程中,記錄下排第幾的數是哪一位,用l 陣...
最長單調遞增子串行 動態規劃
給定乙個序列x 0 n 找出它的最長的單調遞增子串行 longest increasing subsequence 使用動態規劃方法。對於i 1,2,n,考慮以xi作為最後項的最長遞增子串行的長度c i 如果在xi項前面存在xj xi 那麼 c i max 1 否則,c i 1.因此,c i max...
最長遞增子串行(動態規劃實現)
題目描述 題目 於牛客網 對於乙個數字序列,請設計乙個複雜度為o nlogn 的演算法,返回該序列的最長上公升子串行的長度,這裡的子串行定義為這樣乙個序列u1,u2.其中ui ui 1,且a ui a ui 1 給定乙個數字序列a及序列的長度n,請返回最長上公升子串行的長度。測試樣例 2,1,4,3...