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
。