题解 | #牛的品种排序II# java
牛的品种排序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[] v = new int[cows.length]; int i = 0, j = cows.length - 1; for (int k = 0; k < cows.length; ++k) { if (cows[k] == 0) v[i++] = 0; else if (cows[k] == 2) v[j--] = 2; } for (int k = i; k < cows.length; ++k) { if (v[k] == 0) v[k] = 1; } return v; } }
该代码使用的编程语言是Java
该题考察的知识点是数组的遍历和排序。
通过一次循环遍历输入的cows
数组,根据不同的值将元素放入v
的不同位置。当遇到0时,将其放在v
的前面部分,通过i
来控制前面部分的索引;当遇到2时,将其放在v
的后面部分,通过j
来控制后面部分的索引。
遍历结束后,再进行一次循环遍历v
,将剩余的0替换为1。