zoukankan      html  css  js  c++  java
  • 28、数组中出现次数超过一半的数字

    一、题目

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

    二、解法

     1 import java.util.HashMap;
     2 public class Solution {
     3     public int MoreThanHalfNum_Solution(int [] array) {
     4          HashMap<Integer,Integer> hasharray = new HashMap();
     5             for(int i = 0; i < array.length; i++){
     6                 Integer temp = hasharray.get(array[i]);//从hashmap中获取值
     7                 if(temp == null){//如果没有,则添加到hashmap中去
     8                     hasharray.put(array[i], 1);
     9                     temp = 1;
    10                 }else{
    11                     hasharray.put(array[i],++temp);
    12                 }
    13                 if(temp >= array.length/2+1) return array[i];
    14             }
    15             return 0;
    16     }
    17 }
  • 相关阅读:
    Sizzle之tokenize
    直转字符串为数组
    Sizzle前奏
    (242-528)
    (177-240)
    (92-176)
    (63~91)
    一些变量(39~62)
    mysql导入导出sql文件
    vim编辑器的一些操作
  • 原文地址:https://www.cnblogs.com/fankongkong/p/7453211.html
Copyright © 2011-2022 走看看