考察知识点:数组
题目分析:
由于可以根据k值判断数组中数的范围(0 ~ k - 1),可以使用计数的方法,先遍历一遍数组,将每个数出现的次数记录下来,然后按照从小到大的顺序覆盖cows数组即可。
所用编程语言:C++
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param cows int整型vector * @param k int整型 * @return int整型vector */ vector<int> sortCowsIII(vector<int>& cows, int k) { // write code here vector<int> cnt(k); int size = cows.size(); int p = 0; for (auto &cow: cows) cnt[cow]++; for (int i = 0; i < size; p++) { while (cnt[p]) { cows[i++] = p; cnt[p]--; } } return cows; } };