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

草原上优势牛种

https://www.nowcoder.com/practice/178705f48adc4e39ac8537a22e8941cd

知识点

思维,模拟

思路

由题意,必然存在那个半数以上的数,所以我们理解成互相攻击问题即可。维护当前次数以及当前的编号,当出现不同编号时,次数--,如果次数小于等于0,那么更新编号。最后留下来的那个编号即为出现次数半数以上的数。

代码

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型vector 
     * @return int整型
     */
    int majority_cow(vector<int>& nums) {
        // write code here
        int id=nums[0];//当前编号
        int cnt=1;//次数
        for(int i=1;i<nums.size();i++)
        {
            if(nums[i]==id)cnt++;
            else
            {
                cnt--;              
                if(cnt<=0)
                {id=nums[i];//更新编号
                cnt=1;//更新次数
                }
            }
            cout<<nums[i]<<endl;
        }
        return id;
    }
};
全部评论

相关推荐

10-29 15:38
门头沟学院 Java
榕城小榕树:难道你简历里写了配送路径优化算法?
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务