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排在后面。

代码中的主要思路如下:

  1. 首先创建一个长度为3的整型数组 cnt,用于统计每个数字的个数。
  2. 使用循环遍历数组 cows,将遍历得到的每个数字在 cnt 数组中的对应位置加1。
  3. 创建一个指针 index,用于指示当前应该填充的位置。
  4. 使用3个循环,按照 cnt 数组中的个数,依次将0、1、2放回原数组 cows 中,从头开始填充,同时更新指针 index 的位置。
  5. 最后返回重新排序后的数组 cows。
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务