题解 | #牛的品种排序III#
牛的品种排序III
https://www.nowcoder.com/practice/f6ab3d7e20f54860886848f0a6374987
知识点
数组
解题思路
用一个长度为k的arr数组保存每个编号出现的次数,之后遍历arr数组,依次把cows中的连续arr[i]个元素赋值为i。需要用一个sum记录之前已经走到cows的位置。
Java代码
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param cows int整型一维数组 * @param k int整型 * @return int整型一维数组 */ public int[] sortCowsIII (int[] cows, int k) { // write code here int n = cows.length; int[] arr = new int[k]; int sum = 0; for (int cow : cows) { arr[cow] ++; } for (int i = 0; i < k; i++) { for(int j = 0; j < arr[i]; j++){ cows[sum + j] = i; } sum += arr[i]; } return cows; } }