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

牛的品种排序III

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

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param cows int整型一维数组
     * @param k int整型
     * @return int整型一维数组
     */
    public int[] sortCowsIII (int[] cows, int k) {
        int[] ve = new int[100000];
        int n = cows.length;
        for (int i = 0; i < n; ++i)
            ve[cows[i]]++;

        int cnt = 0;
        for (int i = 0; i < k; ++i) {
            for (int j = 0; j < ve[i]; ++j) {
                cows[cnt++] = i;
            }
        }

        return cows;
    }
}

代码使用的编程语言是Java。

该题考察的知识点是数组的操作和排序算法。

这段代码实现了一个方法 sortCowsIII,接受一个整数数组 cows 和一个整数 k 作为参数,并返回一个整数数组结果。

方法的目标是根据给定的整数数组重新排序,将出现次数较少的数字排在前面,出现次数较多的数字排在后面。

在代码中,首先创建了一个长度为100000的整型数组 ve,用于统计每个数字的出现次数。

然后使用循环遍历整数数组 cows,将遍历得到的每个数字在 ve 数组中的对应位置加1。

接下来使用两个循环,依次将0到k-1的数字根据它们在 ve 数组中的出现次数放回原数组 cows 中,从头开始填充。

最后返回重新排序后的整数数组 cows

全部评论

相关推荐

点赞 评论 收藏
分享
牛客101244697号:这个衣服和发型不去投偶像练习生?
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务