题解 | #牛的品种排序III#
牛的品种排序III
https://www.nowcoder.com/practice/f6ab3d7e20f54860886848f0a6374987
考察的知识点:数组;
解答方法分析:
- 创建一个结果向量
result
,初始值为0,长度与输入向量cows
相同。 - 创建一个计数向量
count
,长度为k,初始值为0。 - 遍历输入向量
cows
,对每一个牛的编号进行计数,将计数结果保存在计数向量count
对应的牛的索引位置上。 - 创建一个索引变量
index
,初始值为0,用于指示向结果向量result
中填充牛的编号的位置。 - 使用嵌套的两层循环,外层循环遍历计数向量
count
,内层循环遍历每个编号出现的次数,根据次数依次向结果向量result
填充牛的编号。 - 返回结果向量
result
。
所用编程语言:C++;
完整编程代码:↓
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param cows int整型vector * @param k int整型 * @return int整型vector */ vector<int> sortCowsIII(vector<int>& cows, int k) { vector<int> result(cows.size(), 0); vector<int> count(k, 0); for (int i = 0; i < cows.size(); ++i) { count[cows[i]]++; } int index = 0; for (int i = 0; i < k; ++i) { for (int j = 0; j < count[i]; ++j) { result[index++] = i; } } return result; } };