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; } };