[プログラミング問題]n個の数の中で最小のk個

1256 ワード

リンク:https://www.nowcoder.com/questionTerminal/cc727473d1e248ccb674eb31bd8683dc出典:牛客網はn個の数の中で最も小さいk個を探し出します
説明を入力:
             n+1   ,       k ,n
   100。

出力の説明:
  n       k  。    

例1
入力
3 9 6 8 -10 7 -11 19 30 12 23 5

しゅつりょく
-11 -10 3 6 7

1つ目の方法は、コンテナを使用します.
#include
#include
#include
using namespace std;
int main(){
    vector v;
    int num;
    while(cin>>num){
        v.push_back(num);
    }
    int k=v[v.size()-1];
    v.pop_back();
    sort(v.begin(),v.end());
    for(int i=0;i

2つ目の方法は配列です.
#include
#include 
using namespace std;
int main(){
	int a[100],n=0,temp,geshu;
	set s;
	char ch;
	while(scanf("%d%c",&temp,&ch)){
		a[n++]=temp;
		s.insert(temp);
		if(ch=='
') break; } geshu=a[n-1]; set::iterator it; it=s.find(geshu); s.erase(it); int k=0; for(it=s.begin();it!=s.end();it++,k++) { if (k