leetcode169 多数元素

一、问题描述
二、解题思路

**解法一:**排序+返回中位数

由于这个多数元素出现的次数多于n/2,所以排序之后数组的中位数一定是这个元素,返回即可。

**解法二:**哈希表

使用哈希表来记录元素出现的次数,返回这个多数元素。

三、代码实现

解法一:

cpp 复制代码
class Solution {
public:
    int majorityElement(vector<int>& nums) {
        //排序+返回中位数
        sort(nums.begin(),nums.end());
        int n=nums.size();
        return nums[n/2];
    }
};

解法二:

cpp 复制代码
class Solution {
public:
    int majorityElement(vector<int>& nums) {
        //哈希表
        int n=nums.size();
        unordered_map<int,int> hash;
        for(auto x:nums){
            hash[x]++;
            if(hash[x]>n/2) return x;
        }
        return 0;
    }
};
相关推荐
玖玥拾6 小时前
LeetCode 219 存在重复元素 II
算法·leetcode·哈希算法·散列表
知无不研7 小时前
c语言中循环的介绍与简单应用
c语言·开发语言·算法·循环·for·while
郝学胜-神的一滴7 小时前
Qt 高级编程 045:坐标体系深度实战
开发语言·c++·windows·python·qt·程序人生
码匠许师傅7 小时前
【设计模式精讲】22.中介者模式(Mediator)
c++·设计模式·软件工程·uml·中介者模式
a187927218318 小时前
【算法】动态规划第四篇:背包收官——min 哨兵、计数世界与组合排列分水岭
算法·leetcode·动态规划·dp·01背包·算法讲解·决策合并
2601_962297489 小时前
在python3中、下列输出变量a的正确写法是_2020超星大数据Python免费答案
数据结构·python·算法·编程·字符串操作
辰烨chenye9 小时前
LeetCode Hot 100 题解 · 子串篇
算法·leetcode·职场和发展
辰烨chenye9 小时前
LeetCode Hot 100 题解 · 堆篇
java·算法·leetcode
手写码匠9 小时前
华为云Flexus+DeepSeek征文|DeepSeek 应用监控告警体系实战:从“用户投诉才知道“到“故障前就发现“
人工智能·深度学习·算法·aigc
shehuiyuelaiyuehao10 小时前
算法29,前缀和,除自身以外的数组的乘积
java·数据结构·算法