LeetCode做题记录(第二天)169. 多数元素

题目:169. 多数元素

标签:数组 哈希表 分治 计数 排序
题目信息:
在这里插入图片描述

思路一:

在题目中出现了计数,那我们就可以直接考虑考虑使用哈希表
unordered_map
即遍历的时候记录每个数的出现次数,当出现次数大于n/2时,则返回这个数,这样就可以完成题目了。

代码实现:

class Solution {
public:
    int majorityElement(vector<int>& nums) {
        unordered_map<int,int>mp;//元素:出现次数
        int n=nums.size();
        int falg = n/2;
        for(int i=0;i<n;i++){
            mp[nums[i]]++;
            if(mp[nums[i]]>falg){
                return nums[i];
            }
        }
        return 0;
    }
};

时间复杂度分析:
一层for,O(n)

思路二:

这个思路是我在评论区看到的,很巧妙。
他把这个比作是帮派大乱斗,由于有个帮派的人数始终大于n/2,那么在大乱斗一换一的情况下,最后活着的人一定是这个帮派。

代码实现:

class Solution {
public:
    int majorityElement(vector<int>& nums) {
        int n=nums.size();
        int falg = n/2;
        int ans = nums[0];
        int cnt = 1;
        for(int i=1;i<n;i++){
            if(nums[i]==ans){
                cnt++;
            }else{
                cnt--;
                if(cnt==0){
                    ans = nums[i];
                    cnt = 1;
                }
            }
        }
        return ans;
    }
};

时间复杂度分析:
一层for,也是O(n)
但是由于没有开新的空间,所以空间复杂度很小,O(1)

总结:

出现计数相关的就考虑哈希表

ps:哇,做题写题解真是花时间但又不得不做。还是得好好规划时间。主要还是抖音太费时间,加油加油,加油沉淀。
补充下我最近在一个群里看到群友发出来的话,让我很有触动:

还没开始干,还没学习java基础,就开始拉群问自己有没有可能学得会,还没开始投简历之前就在群里抱怨社会不公平。你就算知道世界不公平,那有什么用呢?也就只是和一堆负能量的人聚集在一起,不光得不到什么情绪价值,每天还会被别人影响,干扰你的判断能力。两个教训总结,跟着别人的节奏一起吐槽。殊不知人家吃穿不愁。而你,浪费你的大把时间。我要是及早醒悟,早点远离这些神经病,内鬼,当别人还在抱怨social的不公,聚集起来批判social。诉说着自己怀才不遇,天道不公时,咱们早就一头扎根在自己的事业中,闷声发大财,搞自己的事业,这才是最正确的,而不是像一个臭平民一样,几十个人聚集在一起,把帽子脱下来,在地下踩上几脚,又有什么用呢

相关推荐

  1. 多数元素算法(leetcode169)

    2024-07-20 09:02:06       49 阅读
  2. [leetcode] 169. 多数元素

    2024-07-20 09:02:06       48 阅读
  3. leetcode 169.多数元素

    2024-07-20 09:02:06       158 阅读
  4. LeetCode 169. 多数元素

    2024-07-20 09:02:06       31 阅读
  5. leetcode-169-多数元素

    2024-07-20 09:02:06       24 阅读
  6. LeetCode169. 多数元素

    2024-07-20 09:02:06       25 阅读
  7. Leetcode 《面试经典150169. 多数元素

    2024-07-20 09:02:06       44 阅读
  8. LeetCode169.多数元素(哈希表)

    2024-07-20 09:02:06       52 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-20 09:02:06       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-20 09:02:06       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-20 09:02:06       45 阅读
  4. Python语言-面向对象

    2024-07-20 09:02:06       55 阅读

热门阅读

  1. Linux中Vim常用指令的笔记

    2024-07-20 09:02:06       19 阅读
  2. docker

    2024-07-20 09:02:06       20 阅读
  3. OLAP分类

    2024-07-20 09:02:06       18 阅读
  4. MySQL 处理重复数据

    2024-07-20 09:02:06       20 阅读
  5. Eureka基本概念

    2024-07-20 09:02:06       17 阅读
  6. Ubuntu下使用notify-send

    2024-07-20 09:02:06       16 阅读
  7. 【22】Android高级知识之Window(三) -WMS

    2024-07-20 09:02:06       17 阅读
  8. HMACSHA256的原理和在C# 中的使用

    2024-07-20 09:02:06       19 阅读