首页 > 其他分享 >2.多数元素

2.多数元素

时间:2024-09-02 15:03:17浏览次数:9  
标签:Map arr hashmap nums int 元素 major 多数

给定一个大小为 n_ _的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。
你可以假设数组是非空的,并且给定的数组总是存在多数元素。
示例 1:

输入:nums = [3,2,3]
输出:3

示例 2:

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

解法1:HashMap

class Solution {
    public int majorityElement(int[] nums) {
        Map<Integer,Integer> counts = countNums(nums);

        Map.Entry<Integer,Integer> major = null;

        //Map.entrySet() 得到Map中所有键值对的Set
        for(Map.Entry<Integer,Integer> entry : counts.entrySet()) {
            if(major == null || entry.getValue() > major.getValue()) {
                major = entry;
            }
        }

        return major.getKey();
    }

    //countNums方法将数组中的元素及其出现的次数进行统计
    public Map<Integer,Integer> countNums(int[] arr) {

        Map<Integer, Integer> hashmap = new HashMap<Integer,Integer>();

        for(int i = 0; i < arr.length; i++) {
            //Map.containsKey(key) 表示Map中是否包含该key
            if(hashmap.containsKey(arr[i])) {
                //map中更新某个key对应的value,直接重新put就行
                hashmap.put(arr[i], hashmap.get(arr[i])+1);
            }else {
                hashmap.put(arr[i], 1);
            }
        }
        return hashmap;
    }
}

解法2:排序

class Solution {
    public int majorityElement(int[] nums) {
        //出现次数大于n/2,直接排序完去索引为n/2处的值
        Arrays.sort(nums);
        return nums[nums.length / 2];
    }
}

标签:Map,arr,hashmap,nums,int,元素,major,多数
From: https://www.cnblogs.com/cymxd/p/18392739

相关文章

  • 代码随想录day48 || 739, 每日温度 496, 下一个更大元素 I 503, 下一个更大元素II
    739每日温度funcdailyTemperatures(temperatures[]int)[]int{ //双指针 varres=make([]int,len(temperatures)) fori:=0;i<len(temperatures);i++{ forj:=i+1;j<len(temperatures);j++{ iftemperatures[j]>temperatures[i]{ res[i]=j......
  • "waitForSelector"在元素可见前超时等待,尽管元素在屏幕上
    waitForSelector方法在元素可见前超时等待,尽管元素在屏幕上,可能是由于以下原因:元素被隐藏或覆盖:元素可能被其他元素隐藏或覆盖,导致waitForSelector方法无法正确检测到元素的可见性。元素加载延迟:元素可能需要一定的时间来加载和显示,而waitForSelector方法的超时时间可能设置得......
  • 力扣230题详解:二叉搜索树中第K小的元素的多种解法与模拟面试问答
    在本篇文章中,我们将详细解读力扣第230题“二叉搜索树中第K小的元素”。通过学习本篇文章,读者将掌握如何在二叉搜索树中高效地查找第K小的元素,并了解相关的复杂度分析和模拟面试问答。每种方法都将配以详细的解释,以便于理解。问题描述力扣第230题“二叉搜索树中第K小的元素......
  • 基于soui4实现一个打印排版软件(六)条形码元素控件
    条码生成使用了开源库zint。该库实现了全部的常用码制。在项目头文件中将库导入项目://zint#include"../zint/include/backend/zint.h"#ifdef_DEBUG#pragmacomment(lib,"../zint/lib/debug/zint.lib")#else#pragmacomment(lib,"../zint/lib/release/zint.lib")......
  • [python][selenium][web自动化]元素定位方式
    8种方式:1、id2、class_name3、name4、link_text5、partial_link_text6、tag_name7、css_selector8、XPath1、2、3:元素属性,通常跟7、8去组合使用比较多。4、5:是用可点击的链接的文本去定位。6:是根据元素标签去定位。7、8:最常用的方式,能结合前面6种方式组合去定位,我个人觉得理解后......
  • CSS 中的图像、媒体和表单元素——WEB开发系列23
    Web开发中,图像、媒体和表单元素是构建用户界面的重要组成部分。正确地使用CSS来处理这些元素可以大幅提高用户体验,增强页面的美观性和功能性。一、什么是替换元素?图像和视频被描述为“替换元素”。这意味着CSS不能影响它们的内部布局——而仅影响它们在页面上相对于其他元素的......
  • XSLT的元素语法
    XSLT的元素语法xsl:template和xsl:apply-templatesxsl:value-ofxsl:for-eachxsl:ifXxsl:choose,when,otherwisexsl:sortxsl:template和xsl:apply-templates模板(template)是XSLT中最重要的概念之一。XSLT文件就是由一个一个的模板组成,任何一个XSLT文件至少包含一个模板。......
  • 2024-08-31:用go语言,给定一个数组apple,包含n个元素,每个元素表示一个包裹中的苹果数量;
    2024-08-31:用go语言,给定一个数组apple,包含n个元素,每个元素表示一个包裹中的苹果数量;另一个数组capacity包含m个元素,表示m个不同箱子的容量。有n个包裹,每个包裹内装有指定数量的苹果,以及m个箱子,每个箱子的容量不同。任务是将这n个包裹中的所有苹果重新分配到箱子中,最小化所需的......
  • 2024-08-31:用go语言,给定一个数组apple,包含n个元素,每个元素表示一个包裹中的苹果数量;
    2024-08-31:用go语言,给定一个数组apple,包含n个元素,每个元素表示一个包裹中的苹果数量;另一个数组capacity包含m个元素,表示m个不同箱子的容量。有n个包裹,每个包裹内装有指定数量的苹果,以及m个箱子,每个箱子的容量不同。任务是将这n个包裹中的所有苹果重新分配到箱子中,最小化所需的箱子......
  • 主元素问题(C语言)
    主元素问题(C语言)题目参考代码#include<stdio.h>intmain(){//主元素问题intn,s[400002],num=1,max=0,maxNum=0;scanf("%d",&n);for(inti=0;i<n;i++)scanf("%d",&s[i]);for(inti=0;......