题解 | #草原上优势牛种#

草原上优势牛种

https://www.nowcoder.com/practice/178705f48adc4e39ac8537a22e8941cd?tpId=354&tqId=10587769&ru=/exam/oj/ta&qru=/ta/interview-202-top/question-ranking&sourceUrl=%2Fexam%2Foj%2Fta%3FtpId%3D354

一、知识点:

数组、遍历

二、文字分析:

使用两个变量 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;
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-25 18:02
来组里2个月了,天天让打杂,写的代码不超过200行。现在已经开始摆烂冲秋招了。我感觉4个月,就算周六日全天睡觉,周一到周五一直看黑马也比我来节子实习学到的东西多。
小熊梦奇:😅节子那么多文档,你是一个都不看啊。 大厂的意义在于内部系统对你开放,看明白事情起因经过结果解决措施,实在看不明白,直接聊天系统搜到对应团队去问当时的负责人,大部分情况下都会给你解答。 这才是大厂实习的精髓
实习生的蛐蛐区
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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