sample input
84 3 8 5 9 6 7 8
10 2 9 3 4 5 10
output23
ps: 因為在同樣的個數里分組也有好多辦法,所以這裡的每個分組內部不一定含有最長不降子串行,但是個數是最少的。
#include using namespace std;
int a[50], b[50];
int main()
if(b[i] > max)
max = b[i];
} for(i = 0; i < n; i++)
cout<<"b[i] "《為什麼是b[i] == b[j]?
如果序列是這樣11 10 9, 分析9的時候你就發現應該是b[i] == b[j],實際上你會發現要是你寫成b[i] <= b[j]也行,但是切勿寫成b[i] >= b[j]這樣b[i]就會往小裡變。
什麼時候適合用a[j] >= a[i]?
如果你想求上公升的分組,你就這麼寫。如果你想求不降的分組,那麼你可以a[j] > a[j]。同理下降序列的情況。
c set求一群數中最小的k個數
問題描述 輸入n個整數,找出其中最小的k k n 個不同數。例如輸入4,5,1,6,1,7,3,8這8個數字,則最小的4個數字是1,3,4,5。輸入形式 每個測試案例包括2行 第一行為2個整數n,k 1 n,k 200000 表示陣列的長度。第二行包含n個整數,表示這n個數,陣列中的數的範圍是 0,...
給定乙個N位數,得到乙個N k位的數中最小的數
題目 給定乙個n位數,例如12345,從裡面去掉k個數字,得到乙個n k位的數,例如去掉2,4,得到135,去掉1,5,得到234。設計演算法,求出所有得到的 n k位數裡面最小的那乙個 解決方案一 1 第一步要確定剩餘n k位的數的最高位 從個位開始算起,從第n k位開始向高位比較,求出最小數字,...
遞迴查詢乙個序列的最大最小值
這個問題在群裡看到的,提問的人伐已經有偽 了,但是他沒理解,以及不知道怎麼用c的 去編寫 他的複試只能使用c 看了一下偽 這個問題的解法是這樣 有點類似於快排 把序列分成兩塊 二分 比較兩塊區間中的最大最小值,這裡就開始遞迴呼叫得到每個區間的最大最小值。其中 當區間劃分直至只有乙個元素,當前區間最大...