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

LeetCode Hot100 169.多数元素

题目

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

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

方法一:哈希表

​
class Solution {
    public int majorityElement(int[] nums) {
        int n = nums.length;
        Map<Integer, Integer> map = new HashMap<>();
        for (int i = 0; i < n; i++) {
            int times = map.getOrDefault(nums[i], 0) + 1;
            if (times > (n / 2))
                return nums[i];
            map.put(nums[i], times);
        }
        return -1;
    }
}

​

时间复杂度 o( n )   空间复杂度 o( n )

方法二:摩尔投票算法

class Solution {
    public int majorityElement(int[] nums) {
        int n = nums.length;
        int count = 0, ans = -1;
        for (int i = 0; i < n; i++) {
            if (count == 0) {
                ans = nums[i];
                count++;
            }
            else if (nums[i] == ans)
                count++;
            else 
                count--;
        }
        return ans;
    }
}


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

相关文章:

  • 网页开发 JS基础
  • 计算一个4+4+1的队形变换问题
  • 键盘打字盲打练习系列之指法练习——2
  • js轮播图示例代码
  • 【C/PTA —— 13.指针2(课内实践)】
  • SQL中left join、right join、inner join等的区别
  • 用通俗的方法讲解:大模型微调训练详细说明(附理论+实践代码)
  • js moment时间范围拿到中间间隔时间
  • 组件库篇 | EUI | 列表
  • C/C++ 内存管理(1)
  • 点云从入门到精通技术详解100篇-基于三维点云的工件曲面轮廓检测与机器人打磨轨迹规划(中)
  • hls实现播放m3u8视频将视频流进行切片 HLS.js简介
  • flutter开发实战-实现获取视频的缩略图封面video_thumbnail
  • YOLOv8改进 | 2023 | SCConv空间和通道重构卷积(精细化检测,又轻量又提点)
  • Linux-Linux安装JDK及配置环境 及 遇到的问题
  • rust持续学习 COW
  • <蓝桥杯软件赛>零基础备赛20周--第8周第1讲--十大排序
  • 【Python基础】内存管理机制
  • 项目代码规范
  • Django的模板标签相关知识累