rinetd 协程 Jetson Nano macos boost nosql Notify.js 传智播客python 鼠标进入和离开事件 mysql分页查询sql语句 查看nodejs版本 python运行环境 python代码示例 python库 python包 python读文件 java变量 java使用 java的包 java最新框架 java结构 java自定义异常 java中的集合 java架构 方正流行体 qq飞车剧情辅助 高效能人士的七个习惯下载 matlab2016a安装教程 离散数学pdf c语言表白代码 0x8002801c cms教程 刷声望 电子商城系统 js跳出for循环 php递归 python求和 rpm卸载命令 vs2012中文旗舰版下载 ps高手教程
当前位置: 首页 > 学习教程  > 编程语言

【剑指offer简单部分9】数组中出现次数超过一半的数字(java)

2020/12/28 20:14:39 文章标签:

题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 分析 方法一:暴力…

题目描述

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。
在这里插入图片描述

分析

方法一:暴力破解

import java.util.Arrays;
public class Solution {
    public int MoreThanHalfNum_Solution(int [] array) {
        Arrays.sort(array);
        int num = array.length / 2;
        for(int i = 0 ; i < array.length ; i++){
            int count = 0;
            for(int j = i ; j < array.length ; j++){
                if(array[i] == array[j]){
                    count++;
                    if(count > num){
                      return array[j];
                    }
                }
            }
        }
         return 0;
    }
}

在这里插入图片描述
方法二:HashMap
我们以后只要是计算重复数字次数,与重复数字,重复字符有关的都可以考虑用java中的HashMap

import java.util.Map;
import java.util.HashMap;
public class Solution {
    public int MoreThanHalfNum_Solution(int [] array) {
        Map<Integer, Integer> map = new HashMap<>();
        //1、将数组放入HashMap中
        for(int key : array){
            map.put(key, map.getOrDefault(key,0) + 1 );//map.getOrDefault方法:当Map集合中有这个key时,就使用这个key值,如果没有就使用默认值defaultValue
        }
        //2、从HashMap中获取key,判断其出现次数是否超过数组长度的一半
        //map.keySet()为获取key集,也就是数字
        for(int key : map.keySet()){
            //获取map.get(key)对应的value值,即数字重复出现的次数
            if(map.get(key) > array.length / 2){
                return key;
            }
        }
        return 0;
    }
}

在这里插入图片描述


本文链接: http://www.dtmao.cc/news_show_550444.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?