找众数

int findMajority(const std::vector<int> &array)
{
        assert(!array.empty ());
        int    majority   = 0;
        size_t counter    = 0;
        std::for_each(array.cbegin (), array.cend (), [&](int i)
        {
                if (counter == 0){
                        majority = i;
                }else{
                        if (majority == i){
                                ++counter;
                        }else{
                                --counter;
                        }
                }
        });
        return majority;
}
时间: 2024-08-09 21:58:47

找众数的相关文章

【剑指Offer-树】二叉搜索树中的众数

题目描述 给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素). 假定 BST 有如下定义: 结点左子树中所含结点的值小于等于当前结点的值 结点右子树中所含结点的值大于等于当前结点的值 左子树和右子树都是二叉搜索树 示例: 例如: 给定 BST [1,null,2,2], 1 2 / 2 返回[2]. 题目链接: https://leetcode-cn.com/problems/find-mode-in-binary-search-tree/ 思路 二叉搜索树

[topcoder]HappyLetterDiv2

http://community.topcoder.com/stat?c=problem_statement&pm=13245 就是有字符串,里面的字符可以随意两两消除,如果不等的话,那么最后如果留下一个字符,这个字符就是winning letter.如果任意方法消除都是这个winning letter,叫做happy letter.求happy letter是否存在.题目其实就是找众数.要注意的是求完了还要扫一遍是不是大于length/2. #include <string> usi

luogu P2397 yyy loves Maths VI (mode)

题目背景 自动上次redbag用加法好好的刁难过了yyy同学以后,yyy十分愤怒.他还击给了redbag一题,但是这题他惊讶的发现自己居然也不会,所以只好找你 题目描述 [h1]udp2:第一题因为语言性质问题,比赛结束后将所有c/c++的程序的内存调为2.2mb后重测.[/h1] 他让redbag找众数 他还特意表示,这个众数出现次数超过了一半 一共n个数,而且保证有 n<=2000000 而且每个数<2^31-1 输入输出格式 输入格式: 第一行一个整数n 第二行n个整数 输出格式: 一行

学姐学长们的测试

2018-5-26 学长学姐们决定给我们来一次测试.(milky-way,zzzyc,xMinh) 这次考试总结一下就是把能想到的错误全犯了一遍... T1:最小子段和 给定n个数,选出连续且非空的一段,使得子段和最小.内存:3MB 做这道题的时候不知道怎么想的,以为3MB只能开4个int,于是就爆了int,发现的时候已经交上去不能改了.只得了40,白丢了60分... 这道题我的做法很奇怪,是把所有数都取反后做最大子段和,最后输出时再取反. # include <cstdio> # inclu

Class热替换与卸载

概述 名词解释:所谓热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用.本文主要是分析Tomcat中关于热部署和JSP更新替换的原理,在此之前先介绍class的热替换和class的卸载的原理. Class热替换 ClassLoader中重要方法: loadClass:ClassLoader.loadClass(…) 是ClassLoader的入口点.当一个类没有指明用什么加载器加载的时候,JVM默认采用AppClassLoader加载器加载没有加载过的class,调用的方法的入口就是

PostgreSQL中查找最大连续性字段

一.建表 lihao=#create table tb (id int,pid int,name varchar); lihao=#INSERT INTO tb VALUES (1, 0, '广东省'); lihao=#INSERT INTO tb VALUES (2, 0, '浙江省'); lihao=#INSERT INTO tb VALUES (3, 2, '衢州市'); lihao=#INSERT INTO tb VALUES (4, 2, '杭州市'); lihao=#INSERT I

Java对List对象进行排序

有时候需要对List对象进行排序,如果每一处都去写一个排序方法,就会产生重复代码的坏味道,而且每一处都写,工作量会很大.我们知道,Java提供了一个Collections.sort()方法可以对List排序,利用Java反射机制,很容易就能写出一个通用的排序方法. 为了防止出现不按照getter,setter规范命名的POJO类,我不打算动态调用getXXX()方法,而是直接获取对象的属性值.为了达到不论是否是public成员变量,都能获取到的目的,在获取到Field后,调用了setAccess

心若迅雷会员账号获取器

心若迅雷会员账号获取器是一个绿色免费的迅雷会员获取小工具,每天都会发布多个有效的迅雷会员账号供大家使用,用户可以使用这些账号登陆迅雷进行离线下载. 获取迅雷白金会员一人一号说明以及流程:点击下面的(立即获取白金会员一人一号)进行获取,会自动打开一个软件安装提示,点击(立即点击安装)然后点软件上的注册账号然后通过注册的账号登陆视频聊天软件,然后随便进个房间免费观看2分钟视频,2分钟以后软件自动发送一人一号白金账号到你邮箱!如果按操作后没发送到自己邮箱请联系客服QQ:1625223157领取一人一号

[LeetCode] Find Mode in Binary Search Tree 找二分搜索数的众数

Given a binary search tree (BST) with duplicates, find all the mode(s) (the most frequently occurred element) in the given BST. Assume a BST is defined as follows: The left subtree of a node contains only nodes with keys less than or equal to the nod