經典例題 元素的最大值和次最大值

2021-09-30 01:48:20 字數 1015 閱讀 3603

方法一:排序後查詢,直接呼叫sort()函式

特別注意sort()函式的用法

#include

using

namespace std;

intmain()

sort

(a+1

,a+n)

; cout<

<<

" "<

;//排序後輸出最後兩個元素即可。

方法二 迴圈遍歷比較陣列元素

將陣列元素前兩個看作最大和次最大值,然後從第三個開始迴圈比較,找出結果。

#include

using

namespace std;

intmain()

int da=a[1]

;int cida=a[2]

;//先假設a[1]最大,a[2]次大,以此初始化

if(a[1]

)for

(int i=

3;i<=n-

1;i++

)else

if(a[i]

>cida)

} cout<

" "<

//輸出結果

return0;

}

方法三:利用氣泡排序,只迴圈兩次就可
#include

using

namespace std;

intmain()

int length=a.

size()

;for

(int i=

0;i<=

1;i++)}

} cout<

<<

" "<

;return0;

}

求陣列中最大值和次最大值的較優演算法

先讓最大值為陣列首元素,然後用max和陣列的每乙個值進行比較,若小則交換,此時將max的舊值給次最大值submax。但如果陣列中最大值在遍歷前就已經找到,那麼submax將不再更新,所以在max值不更新的時候,要將submax與最近遍歷到的陣列與元素進行更新,以保證submax得到陣列中的次大值 如...

滑動視窗的最大值 佇列的最大值

請定義乙個佇列並實現函式max得到佇列裡的最大值,要求函式max push back和 pop front的時間複雜度都是o 1 在佇列中維護乙個儲存最大值的佇列,當pop和push操作的同時也對最大值佇列進行維護。當彈出的時佇列中的最大值時,也彈出最大值佇列的頭,當壓入新值時,對最大值佇列從後向前...

int 最大值 239 滑動視窗最大值

給定乙個陣列 nums,有乙個大小為 k 的滑動視窗從陣列的最左側移動到陣列的最右側。你只可以看到在滑動視窗內的 k 個數字。滑動視窗每次只向右移動一位。返回滑動視窗中的最大值。示例 輸入 nums 1,3,1,3,5,3,6,7 和 k 3 輸出 3,3,5,5,6,7 解釋 滑動視窗的位置 最大...