输入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