輸入n個整數,找出其中最小的K個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,。


// ConsoleApplication2.cpp : 定義控制台應用程序的入口點。
//

#include "stdafx.h"
#include "stdafx.h"
#include<iostream>
#include<vector>
#include<algorithm>
#include<numeric>
#include<list>
#include<iterator>
#include<queue>
#include<stack>
#include<algorithm>
#include<forward_list>
using namespace std;



class Solution {
public:
	vector<int> GetLeastNumbers_Solution(vector<int> input, int k) {
		sort(input.begin(),input.end());
		vector<int> vec;
		if (k > input.size()) return vec;
		auto it = input.begin();
		
		for (int i = 0; i < k;i++)
		{
			if (it == input.end()) break;
			vec.push_back(*it);
			++it;
		}
		return vec;
	}
};

int main()
{

	Solution so;
	vector<int> input = { 4,5,1,6,2,7,3,8 };
	vector<int> result = so.GetLeastNumbers_Solution(input,4);
	for (auto it = result.begin(); it != result.end(); ++it)
		cout << *it << "  ";

	cout << endl;
	return 0;
}

注意:此處主要考察的是排序,我直接調用系統的sort方法進行排序。
      要多看堆排序、快排、冒泡等排序算法及其復雜度


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM