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

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

示例 1:

输入: [3,2,3]
输出: 3
示例 2:

输入: [2,2,1,1,1,2,2]
输出: 2

排序之后遍历一次即可

import java.util.Arrays;

public class Solutino169 {
    public static int majorityElement(int[] nums) {
        int n = nums.length;
        int i,sum=1;
        Arrays.sort(nums, 0, nums.length);
        for(i=0;i<n-1;i++)
        {
            if(nums[i]==nums[i+1])
            {
                sum++;
                if(sum>n/2)
                {
                    return nums[i];
                }
            }
            else
            {
                sum = 1;
            }
        }
        return nums[0];
        
    }
    public static void main(String[] args)
    {
        //int[] nums = {3,2,3};
        int[] nums = {2,2,1,1,1,2,2};
        System.out.println(majorityElement(nums));
    }
}

针对上面的代码,可以有一个改进,不论众数是数组中的最大,最小值,或者是中间值

因为他的数量大于总数的一半,因此排序完成后的n/2位置处一定是众数

import java.util.Arrays;

public class Solutino169 {
    public static int majorityElement(int[] nums) {
        Arrays.sort(nums, 0, nums.length);  //两行代码即可完成
        return nums[nums.length/2];
        
    }
    public static void main(String[] args)
    {
        //int[] nums = {3,2,3};
        int[] nums = {2,2,1,1,1,2,2};
        System.out.println(majorityElement(nums));
    }
}

Leetcode--169. 求众数相关推荐

  1. LeetCode 169. 求众数(摩尔投票)

    文章目录 1. 题目信息 2. 解题思路 3. 代码 3.1 排序 3.2 map计数 3.3 摩尔投票 1. 题目信息 给定一个大小为 n 的数组,找到其中的众数.众数是指在数组中出现次数大于 ⌊ ...

  2. Leetcode:169. 求众数

    题目链接 求众数 题目描述 给定一个大小为 n 的数组,找到其中的众数.众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素. 你可以假设数组是非空的,并且给定的数组总是存在众数. 示例 1: 输入: ...

  3. leetcode.169 求众数

    给定一个大小为 n 的数组,找到其中的众数.众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素. 你可以假设数组是非空的,并且给定的数组总是存在众数. // 示例1 输入: [3,2,3] 输出: ...

  4. Leetcode 169. 求众数 解题思路及C++实现

    解题思路: 因为int型数值只有32位,使用位运算的方法来解这道题时,就是要确定这个众数,在32位的位置上分别是0还是1. 由题意,因为众数的个数超过n/2,所以遍历数组nums后,如果某一位置上1的 ...

  5. LeetCode 169.求众数

    题目描述: 给定一个大小为 n 的数组,找到其中的众数.众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素. 你可以假设数组是非空的,并且给定的数组总是存在众数. 示例 1: 输入: [3,2,3] ...

  6. java求众数_Java实现 LeetCode 229 求众数 II(二)

    229. 求众数 II 给定一个大小为 n 的数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素. 说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1). 示例 1: 输入: [3,2, ...

  7. LeetCode 229. 求众数 II(摩尔投票)

    1. 题目 给定一个大小为 n 的数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素. 说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1). 示例 1: 输入: [3,2,3] 输出: ...

  8. 领扣问题169. 求众数 python解决方案

    欢迎和我一起学习啊! 给定一个大小为 n 的数组,找到其中的众数.众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素. 你可以假设数组是非空的,并且给定的数组总是存在众数. 示例 1: 输入: [3 ...

  9. [leetcode]229. 求众数 II

    解题思路:题目要求空间复杂度为O(1) 大于1/3的数不会超过2个,利用Boyer-Moore 投票算法找到数量最多的两个数,再检查下这俩个数的数量有没有超过1/3 class Solution {p ...

  10. Task8(简单)位运算:169.求众数

    class Solution: def majorityElement(self, nums): majority_count = len(nums)//2 for num in nums: coun ...

最新文章

  1. MSBuild + MSILInect实现编译时AOP-改变前后对比
  2. 9月份准备备考RHCE 10份考试争取一次通过
  3. 【Android 异步操作】AsyncTask 异步任务 ( FutureTask 模拟 AsyncTask 执行过程 | AsyncTask 执行过程回顾 | FutureTask 分析 )
  4. 【Qt】2D绘图之复合模式
  5. 自学Android!Android高级工程师面试题-字节跳动,附答案
  6. 接计算机专业怎样备考,专接本考试计算机专业复习指南.pdf
  7. python gevent async_详解python之协程gevent模块
  8. 【Rollo的Python之路】Python 爬虫系统学习 (二) Requests 模块学习
  9. linux添加swap分区【转】
  10. Android使用拖拽控件来布局界面并展示
  11. 实对称矩阵的特征值求法_MIT—微分方程与线性代数笔记6.5 对称矩阵,实特征值,正交特征向量...
  12. OpenNLP 自然语言处理工具
  13. 虚拟机 服务器死机,VMware虚拟机开机卡死黑屏,进不了系统解决办法
  14. macos系统升级到big sur以后safari浏览器崩溃怎么办?
  15. webpack stats
  16. 用python画圆锥_用python画一幅美瞳,今日份来自程序员的浪漫
  17. Android和IOS mumu模拟器 正确安装与设置机型
  18. 佐客牛排机器人餐厅_2018年中国最火的三家餐厅!秘密竟是机器人服务员?
  19. H5游戏开发-面向对象编程
  20. error: resource android:style/TextAppearance.Material.Widget.Button.Colored not found. 解决办法

热门文章

  1. 程序员面试金典 - 面试题 05.07. 配对交换(位运算)
  2. 程序员面试金典 - 面试题 02.08. 环路检测(快慢指针)
  3. 谷歌插件开发ajax请求,chrome插件 注入js以及发送ajax(message/request)
  4. android monkey压力测试,Android-Monkey 压力测试
  5. php 正则 尖括号,php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串...
  6. linux视频在windows播放器,适用于Windows和Linux的免费多媒体播放器SMPlayer 18.6.0发布 - 爱绿豆...
  7. 在深度学习顶会ICLR 2020上,Transformer模型有什么新进展?
  8. Docker系列之二:基于容器的自动构建
  9. 解读 | 滴滴主题研究计划:机器学习专题+
  10. 论文学习2-Incorporating Graph Attention Mechanism into Knowledge Graph Reasoning Based on Deep Reinforce