一、知识点:
数组、遍历
二、文字分析:
使用两个变量 count 和 candidate 分别表示当前候选牛种的计数和候选牛种。遍历数组时,如果 count 为0,表示当前没有候选牛种,我们将当前牛种设置为候选牛种,并将 count 设置为1。如果当前牛种与候选牛种相同,则将 count 加1;否则将 count 减1。最终,候选牛种一定是优势牛种。
复杂度分析:时间复杂度为 O(n),空间复杂度为 O(1)。
三、编程语言:
java
四、正确代码:
import java.util.*;
public class Solution {
/**
* 找到优势牛种,即出现次数超过总数量一半以上的牛种
*
* @param nums int整型一维数组,表示牛的种类数组
* @return int整型,优势牛种的种类
*/
public int majority_cow(int[] nums) {
int count = 0; // 当前候选牛种的计数
int candidate = 0; // 当前候选牛种
for (int num : nums) {
if (count == 0) {
candidate = num;
count = 1;
} else if (candidate == num) {
count++;
} else {
count--;
}
}
// 最终的候选牛种一定是优势牛种
return candidate;
}
}

京公网安备 11010502036488号