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

【力扣热题100】[Java版] 刷题笔记-169. 多数元素

题目:169. 多数元素

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

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

解题思路

该题目的核心点是:元素出现的次数大于 n/2

第一种:利用哈希集合,存入元素并统计数量,数量 大于  n/2 并返回

第二种:排序,将数组排序,排序后,中间元素一定就是多数元素,这里排序可以用冒泡或者快排,也可以直接利用数组的排序方法。

解题过程

第一种:哈希集合

class Solution {public int majorityElement(int[] nums) {if (nums.length == 1) {return nums[0];}Map<Integer,Integer> counts = new HashMap<Integer,Integer>();for(int i=0 ; i< nums.length; i++) {if (!counts.containsKey(nums[i])) {counts.put(nums[i], 1);} else {counts.put(nums[i], counts.get(nums[i])+1);}}int num = 0;Set<Map.Entry<Integer, Integer>> entries = counts.entrySet();for (Map.Entry<Integer, Integer> entry : entries) {if( entry.getValue() > (nums.length/2) ) {return entry.getKey(); }}return num;        }
}

第二种: 排序

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


http://www.mrgr.cn/news/69694.html

相关文章:

  • 【MYSQL】主从复制机制(图解)
  • C++中的栈(Stack)和堆(Heap)
  • 阅读2020-2023年《国外军用无人机装备技术发展综述》笔记_技术趋势
  • 重学 Android 自定义 View 系列(六):环形进度条
  • 微搭低代码入门03函数
  • 【深度学习目标检测|YOLO算法5-2-1】YOLO家族进化史:从YOLOv1到YOLOv11的架构创新、性能优化与行业应用全解析...
  • 丹摩征文活动 |【网络原理】关于HTTP的进化之HTTPS的加密原理的那些事
  • SQL50题
  • vue3入门和实战-vue3项目创建
  • unity下添加c#脚本
  • Java中的享元模式
  • PostgreSQL pg-xact(clog)目录文件缺失处理
  • C++11 --可变参数模版
  • 【新书】掌握大语言模型:高级技术、应用、尖端方法和顶尖LLMs
  • 模型 长尾效应
  • 词嵌入方法(Word Embedding)
  • 月薪已炒到15w?强烈建议大家冲一冲设计新兴领域,工资高前景好,人才缺口极大!
  • 每个人都要懂的生活哲学养身哲学
  • 【设计模式】结构型模式(四):组合模式、享元模式
  • 在 Windows 安装 QT6.8 并用图形拉取界面 时间2024/11/10
  • 鸿蒙系统:智能生态的新纪元与开发者的新机遇
  • 牧神记开分9.7,2024新国漫巅峰出现了
  • 机器学习Housing数据集
  • 使用layui过程中的问题
  • mapreduce综合应用案例 — 气象数据清洗
  • 基于SpringBoot和Vue的公司文档管理系统设计与开发(源码+定制+开发)