首页 > 编程语言 >程序分享--常见算法/编程面试题:多数元素

程序分享--常见算法/编程面试题:多数元素

时间:2024-05-26 12:58:14浏览次数:32  
标签:面试题 return nums -- 编程 int 面试 心得

关注我,持续分享逻辑思维&管理思维&面试题; 可提供大厂面试辅导、及定制化求职/在职/管理/架构辅导;
有意找工作的同学,请参考博主的原创:《面试官心得--面试前应该如何准备》,《面试官心得--面试时如何进行自我介绍》, 《做好面试准备,迎接2024金三银四》。
或关注博主免费专栏【程序员宝典--常用代码分享】里面有大量面试涉及的算法或数据结构编程题。

-------------------------------------正文----------------------------------------

给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。

你可以假设数组是非空的,并且给定的数组总是存在多数元素。

示例 1:
输入:
nums = [3,2,3]
输出:3

示例 2:
输入:
nums = [2,2,1,1,1,2,2]
输出:2

-------------------------------------答案----------------------------------------

class Solution {
    static int count(vector<int>& arr,int x,int h,int l) {
        int sum = 0;
        for(int i = l;i <= h;i++) {
            if(arr[i] == x) {
                sum++;
            }
        }
        return sum;
    }
    static int f(vector<int>& nums,int h,int l) {
        if(h == l) {
            return nums[h];
        }
        int mid = (h+l)/2;
        int m_bound = (h-l+1)/2;
        int right_m = f(nums,h,mid+1);
        int left_m = f(nums,mid,l);
        if(count(nums,left_m,h,l) > m_bound) {
            return left_m;
        }
        if(count(nums,right_m,h,l) > m_bound) {
            return right_m;
        }
        return 0;
    }
public:
    static int majorityElement(vector<int>& nums) {
        return f(nums,nums.size()-1,0);
    }
};

感兴趣的同学辛苦 关注/点赞 ,持续分享逻辑、算法、管理、技术、人工智能相关的文章。

博主其它经典原创:《管理心得--如何高效进行跨部门合作》,《技术心得--如何成为优秀的架构师》、《管理心得--如何成为优秀的架构师》、《管理心理--程序员如何选择职业赛道》,及
C#实例:SQL如何添加数据》,《C#实战分享--爬虫的基础原理及实现》欢迎大家阅读。

标签:面试题,return,nums,--,编程,int,面试,心得
From: https://blog.csdn.net/weixin_60437218/article/details/138286437

相关文章

  • C++冷知识:ANSI标准控制字符,快@你的C友一起看吧~
        先赞后看,养成习惯,求求啦!             在终端中,有一种字符,叫做ANSI标准控制字符。        我们以前知道(不知道的看):'\n'//换行符'\a'//响铃'\r'//回到第一行第一列'\b'//回删    这次,我们要整个终端变颜色,可以用到:syst......
  • Hoic对网站的测试使用
    禁止使用该项技术攻击一切未经允许的公网网站,违者将受到法律制裁。下载地址:https://wwl.lanzout.com/iiJa11zsqljg下载完成后解压,并打开。打开\(hoic2.1.exe\)。并调整线程数,再点击图中加号。在弹窗内,\(URL\)处填入要测试的网站网址。\(Power\)调整速度。\(Booster\)部......
  • Win11系统安装和基本设置
    1.目的Win11可以使用WSL2里的ubuntu,某种程度上相当于双系统,相比于安装ubuntu+虚拟机windows/远程连接windows要更轻量级。使用WSL2的ubuntu里的docker,相比使用Windows的docker更简单方便。2.制作启动镜像下载Win11镜像文件最新版例如Win11_23H2_Chinese_......
  • 极简vim配置
    安装vim`sudoaptinstallvim`安装plug-vim`curl-fLo~/.vim/autoload/plug.vim--create-dirshttps://raw.njuu.cf/junegunn/vim-plug/master/plug.vim`创建配置`vim.vimrc`粘贴配置setbs=2"Allowbackspacingovereverythingininsertm......
  • 记单词
    1.assign查看代码[əˈsain]vt.分配;指定(时间,地点等);委派拆分:as-朝,向+-sign-标记,指示⇒指示某人到某事或指示某事给某人例:Iassignedhimthejob.我派他担任这一职务。Theyhaveassignedmeasmallroom.他们已给我分配了一个小房间。Thecaptai......
  • 【图论】割点(割顶)
    前置定义有无向图\(G=(V,E).\)无向图的DFS树:从某一点\(root\)开始DFS,访问邻点\(.\)当搜索到点\(u\)时,我们遍历每一条以\(u\)为起点的边\((u,v_i)\),且定义有向边\(u\longrightarrowv_i.\)于是DFS的过程全部完成之后,所有被定义的有向边就会组成一颗以\(r......
  • 关于Undertow启动时的警告日志
    错误提示:当使用Undertow作为SpringBoot嵌入式服务器时,启动应用。会看到有一条 WARN 日志,如下:UT026010:BufferpoolwasnotsetonWebSocketDeploymentInfo,thedefaultpoolwillbeused大致意思是“没有给WebSocketDeploymentInfo设置Bufferpool,将会使用默......
  • 脑机接口习题
    9-12章习题填空题EEG电极分为主动电极和被动电极,其中被动电极直接与放大器连接,主动电极包含一个1~10倍的前置放大。除抗混淆滤波器,放大系统也包含由电阻器、电容器构成的模拟滤波器,把信号频率内容限制在一个特定的频率范围,这些模拟滤波器称为RC滤波器,RC滤波器分为高......
  • 蓝桥杯备赛——DP【python】
    一、小明的背包1试题链接:https://www.lanqiao.cn/problems/1174/learning/问题描述输入实例52016253851533输出示例37问题分析这里我们要创建一个DP表,DP(i,j)表示处理到第i个物品时消耗j体积。这样我们在输入数据时可以直接进行操作。对于每一个dp[i][j]我......
  • Git push时报错:fatal: Could not read from remote repository. Please make sure you
    这个问题困扰了我好久,在网上试了各种方法都不管用,最后重新设置了代理才解决,现在记录一下整个流程:先使用[email protected]看ssh的返回信息,如果出现:You'vesuccessfullyauthenticated,butGitHubdoesnotprovideshellaccess.,则说明你的ssh连接没有问题,否则重新生成密钥......