Java 题解 | #牛的品种排序II#
牛的品种排序II
https://www.nowcoder.com/practice/43e49fbb98b4497ba46e185918188b1c
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param cows int整型一维数组 * @return int整型一维数组 */ public int[] sortCows (int[] cows) { // write code here int n = cows.length; int[] cnt = new int[3]; // 统计每个数字的个数 for (int i = 0; i < n; i++) { cnt[cows[i]]++; } int index = 0; // 将0的个数对应的位置设为0 for (int i = 0; i < cnt[0]; i++) { cows[index++] = 0; } // 将1的个数对应的位置设为1 for (int i = 0; i < cnt[1]; i++) { cows[index++] = 1; } // 将2的个数对应的位置设为2 for (int i = 0; i < cnt[2]; i++) { cows[index++] = 2; } return cows; } }
该代码使用的编程语言是Java。
这段代码实现了一个函数 sortCows
,接受一个整数数组 cows
作为参数,并返回一个整数数组结果。
函数的目标是根据给定的整数数组重新排序,将所有的0排在前面,1排在中间,2排在后面。
代码中的主要思路如下:
- 首先创建一个长度为3的整型数组 cnt,用于统计每个数字的个数。
- 使用循环遍历数组 cows,将遍历得到的每个数字在 cnt 数组中的对应位置加1。
- 创建一个指针 index,用于指示当前应该填充的位置。
- 使用3个循环,按照 cnt 数组中的个数,依次将0、1、2放回原数组 cows 中,从头开始填充,同时更新指针 index 的位置。
- 最后返回重新排序后的数组 cows。