題目描述
現有n個正整數,n≤100000,要求出這n個正整數中的第k個最小整數(相同大小的整數只計算一次),k≤400。
輸入第1行為n和k,第2行開始為n個正整數的值,整數間用空格隔開。
輸出第k個最小整數的值;若無解,則輸出「no result」。
樣例輸入
10 3
1 3 3 7 2 5 1 2 4 6
樣例輸出
3沒什麼說的,直接暴力,但不能用氣泡排序,1e5的平方會tl,sort函式其實是快速排序的優化,故不需要手動寫快排函式。
#include
//萬能標頭檔案
using namespace std;
intmain()
sort
(a,a+n)
;//排序,預設為從小到大
n=unique
(a,a+n)
-a;//unique函式的本質是將重複的部分移到字串尾部,而不是刪去,故其長度並未改變,引用需要更新字串長度n
if(k<=n)
printf
("%d\n"
,a[k-1]
);else
printf
("no result\n");
//n以後為重複部分,不計入
return0;
}
unique函式的學習與應用
最近發現了乙個好玩的函式,可以去掉重複的數字或者字母,感覺很強大,以後再也 寫那麼多的 了,兩行核心 就能搞定。unique一般都是與sort連著用。include 排序標頭檔案 include sort f,f n 對函式進行排序 int m unique f,f n f m返回的是前n個元素中不...
unique 去重函式
unique 函式是乙個去重函式,stl中unique的函式 unique的功能是去除相鄰的重複元素 只保留乙個 還有乙個容易忽視的特性是它並不真正把重複的元素刪除。他是c 中的函式,所以標頭檔案要加 include,具體用法如下 int num 100 unique num,mun n 返回的是n...
unique 去重函式
unique 是c 標準庫函式裡面的函式,位於標頭檔案 include中,其功能是去除相鄰的重複元素 只保留乙個 所以使用前需要對陣列進行排序 該函式的乙個使用方法,對於長度為n陣列arr,unique arr,arr n arr返回的是去重後的陣列長度 那它是怎麼實現去重的呢?刪除?不是,它並沒有...