题解 | #牛的品种排序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;
}
};
查看1道真题和解析