题解 | #最小的K个数#

最小的K个数

http://www.nowcoder.com/practice/6a296eb82cf844ca8539b57c23e6e9bf

class Solution {
public:
    vector<int> GetLeastNumbers_Solution(vector<int> input, int k) 
    {
        vector<int> vecLeastNumber;
        if(k <= 0) return vecLeastNumber;
        for(int i = 0; i < input.size(); i++)
        {
            if(vecLeastNumber.size() >= k)
            {
                //比较vecLeastNumber中最大的数和input[i],input[i]小则与最大数交换
                int nMaxNumIndex = 0;
                int nMaxNum = vecLeastNumber[0];
                for(int j = 0; j < vecLeastNumber.size(); j++)
                {
                    if(vecLeastNumber[j] > nMaxNum)
                    {
                        nMaxNum = vecLeastNumber[j];
                        nMaxNumIndex = j;
                    }
                }
                if(nMaxNumIndex != -1 && input[i] < nMaxNum)
                {
                    int nTmp = input[i];
                    input[i] = vecLeastNumber[nMaxNumIndex];
                    vecLeastNumber[nMaxNumIndex] = nTmp;
                }
            }
            else
            {
                vecLeastNumber.push_back(input[i]);
            }
        }
        return vecLeastNumber;
    }
};

注意!此信息未认证,请谨慎判断信息的真实性!

全部评论
空

相关内容推荐

点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 评论 收藏
转发
点赞 收藏 评论
分享

全站热榜

正在热议