题解 | #数组中出现次数超过一半的数字#

数组中出现次数超过一半的数字

https://www.nowcoder.com/practice/e8a1b01a2df14cb2b228b30ee6a92163

众数的思路,挺好的。
        int cond = -1;
        int cnt = 0;
        for (int i=0; i<numbers.size(); ++i) {
            if (cnt == 0) {
                cond = numbers[i];
                ++cnt;
            }
            else {
                if (cond == numbers[i]) ++cnt;
                else --cnt;
            }
 
        }
        return cond;//不用检查,直接返回。
        //检查是否是众数,这一步此题是不需要的。
//         cnt = 0;
//         for (const int k :numbers) {
//             if (cond == k) ++cnt;
//         }
//         if (cnt > numbers.size() / 2) return cond;
//         return 0;
    }
};


全部评论

相关推荐

02-19 13:42
门头沟学院 Java
运气爆棚福星高赵:清✌️不用很在意项目,八股算法是重点,八股算法说的过去绝对要您
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务