方法一:排序後查詢,直接呼叫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 解釋 滑動視窗的位置 最大...