zoukankan      html  css  js  c++  java
  • 输入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方法进行排序。
          要多看堆排序、快排、冒泡等排序算法及其复杂度
  • 相关阅读:
    个人信息
    两个整数的最小公倍数和最大公约数
    java杨辉三角实现
    只会用这简单的递归求阶乘
    图形界面设计
    圆的面积,周长,圆柱体的体积(类的封装与抽象)
    杨辉三角
    1~10的阶乘java语言编程
    个人信息与计算器
    个人信息显示界面
  • 原文地址:https://www.cnblogs.com/wdan2016/p/6001222.html
Copyright © 2011-2022 走看看