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。

