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。
