题解 | #牛的品种排序III#

牛的品种排序III

https://www.nowcoder.com/practice/f6ab3d7e20f54860886848f0a6374987

大家好,我是开车的阿Q,自动驾驶的时代已经到来,没时间解释了,快和阿Q一起上车。作为自动驾驶系统工程师,必须要有最好的C++基础,让我们来一起刷题吧。

题目考察的知识点

排序,数组处理

题目解答方法的文字分析

这个问题可以使用计数排序的思想来解决。我们可以创建一个长度为 k 的计数数组,用来统计每种牛的数量。然后,我们可以根据计数数组的信息重新组织牛的顺序。

首先,我们遍历一遍原始牛群,统计每种牛的数量。然后,根据计数数组的信息,我们可以重新填充原始牛群,将相同品种的牛按顺序排列。

具体做法是:遍历计数数组,按照计数数组的索引(品种)和对应的数量,依次填充原始牛群。这样,就能够保证相同品种的牛都相邻,并且按照顺序排列。

本题解析所用的编程语言

C++

完整且正确的编程代码

#include <vector>

using namespace std;

class Solution {
public:
    vector<int> sortCowsIII(vector<int>& cows, int k) {
        vector<int> count(k, 0); // 计数数组,记录每种牛的数量
        vector<int> sortedCows(cows.size()); // 用于存放排序后的牛群

        // 统计每种牛的数量
        for (int i = 0; i < cows.size(); ++i) {
            count[cows[i]]++;
        }

        int index = 0;
        // 重新填充原始牛群,按顺序排列
        for (int i = 0; i < k; ++i) {
            while (count[i] > 0) {
                sortedCows[index] = i;
                index++;
                count[i]--;
            }
        }

        return sortedCows;
    }
};

您的关注、点赞、收藏就是我创作的动力,三连支持阿Q!

阿Q的题解 文章被收录于专栏

阿Q秋招刷过的题

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-08 10:39
一个证都没&nbsp;我能填什么
程序员小白条:别人有,你为什么没有,还是这个道理,社会就是比较,竞争,淘汰,你要安逸,那么就要做好淘汰的准备
点赞 评论 收藏
分享
05-12 17:00
门头沟学院 Java
king122:你的项目描述至少要分点呀,要实习的话,你的描述可以使用什么技术,实现了什么难点,达成了哪些数字指标,这个数字指标尽量是真实的,这样面试应该会多很多,就这样自己包装一下,包装不好可以找我,我有几个大厂最近做过的实习项目也可以包装一下
点赞 评论 收藏
分享
06-22 10:41
赣东学院 Java
程序员小白条:?周六晚上投,这是什么操作,专门找996起步的吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务