当前位置: 首页 > article >正文

Java面试经典 150 题.P169. 多数元素(005)

本题来自:力扣-面试经典 150 题

面试经典 150 题 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台icon-default.png?t=O83Ahttps://leetcode.cn/studyplan/top-interview-150/

题解:

class Solution {
    public int majorityElement(int[] nums) {
        Arrays.sort(nums);
        return nums[nums.length / 2];
}

思路如下:

排序后由于多数多数元素占整个数组的1/2以上。所以数组中间一定是多数元素

题解:

class Solution {
    public int majorityElement(int[] nums) {
        int key = 0;
        int value = 0;
        for(int x : nums){
            if(value == 0)
                key = x;
            
            if(key == x)
                value++;
            else
                value--;
        }
        return key;
    }
}

思路如下:

Boyer-Moore 投票算法,如果我们把众数记为 +1,把其他数记为 −1,将它们全部加起来,显然和大于 0,从结果本身我们可以看出众数比其他数多。


http://www.kler.cn/a/373890.html

相关文章:

  • redis详细教程(6.主从复制)
  • Cloud Compare学习笔记
  • Vant入门
  • 【C/C++】模拟实现strlen
  • Python3 No module named ‘pymysql‘
  • uniapp 底部导航栏tabBar设置后不显示的问题——已解决
  • java.sql.SQLException: ORA-00971: 缺失 SET 关键字
  • 瑞格智慧心理服务平台 NPreenSMSList.asmx sql注入漏洞复现
  • Python 从入门到实战43(Pandas数据结构)
  • Ika赋予Sui开发者与其他链交互的能力
  • Java | Leetcode Java题解之第517题超级洗衣机
  • 如何实现易快报合同付款申请单对接金蝶云星空
  • python 模块和包、类和对象
  • 【JSON改】同结构JSON的批量修改工具
  • 高并发设计模式之ForkJoin模式
  • ssm010基于ssm的新能源汽车在线租赁管理系统(论文+源码)_kaic
  • Vue学习笔记(十二)
  • 【AAOS】【源码分析】CarSystemUI
  • 分库分表常见面试问题
  • 进一步认识ICMP协议
  • PAT甲级-1074 Reversing Linked List
  • H5中文可以换行,英文无法换行
  • [nssround#4 swpu]1zweb
  • 计算合约方法的签名
  • Terraform Provider 加速方案
  • Mybatis-17.动态SQL-foreach