Java 题解 | #牛的品种排序I#
牛的品种排序I
https://www.nowcoder.com/practice/e3864ed7689d460c9e2da77e1c866dce
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param cows int整型一维数组
* @return int整型一维数组
*/
public int[] sortCows (int[] cows) {
// write code here
int zero = 0;
int one = cows.length - 1;
while (zero <= one) {
if (cows[zero] == 1) {
int temp = cows[zero];
cows[zero] = cows[one];
cows[one] = temp;
one--;
} else {
zero++;
}
}
return cows;
}
}
该代码使用的编程语言是Java。
该题考察的知识点是双指针法和数组操作。
这段代码实现了一个函数 sortCows,接受一个整数数组 cows 作为参数,并返回一个整数数组结果。
函数的目标是根据给定的整数数组重新排序,将所有的0排在前面,1排在后面。
代码中的主要逻辑如下:
- 首先创建两个指针 zero 和 one,分别指向数组的起始位置和末尾位置。
- 使用循环,判断条件为 zero 小于等于 one。
- 在循环中,如果 cows[zero] 的值为1,则将 cows[zero] 和 cows[one] 的值进行交换,并将 one 指针左移一位。
- 如果 cows[zero] 的值为0,则将 zero 指针右移一位。
- 循环结束后,返回重新排序后的数组 cows。
查看7道真题和解析
