今日打卡,排序+返回前k个数即可。主要就是考察排序。
本来尝试自己写了一个冒泡排序法,可是超出时间限制,于是直接用了内置的排序。
冒泡排序:
for(int i = 0 ; i < arr.size() - 1; i++)
{
for(int j = i + 1; j < arr.size() ; j++)
{
if(arr[i] > arr[j]) {
int temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
}
}
完整代码:
vector<int> getLeastNumbers(vector<int>& arr, int k) {
vector<int> res ;
sort(arr.begin(),arr.end());
for(int s = 0; s < k; s++)
{
res.push_back(arr[s]);
}
return res;
}
};
实际上没必要循环赋值,而是直接返回vector的前k个数,这就考察你对vector熟不熟了。
vector<int> getLeastNumbers(vector<int>& arr, int k) {
sort(arr.begin(),arr.end());
return vector<int> (arr.begin(),arr.begin()+k);
}
};