zoukankan      html  css  js  c++  java
  • Majority Element

    package cn.edu.xidian.sselab.array;

    import java.util.Arrays;
    import java.util.HashMap;
    import java.util.Map;

    /**
     *
     * @author zhiyong wang
     * title: Majority Element
     * content:
     *         Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.
     *         You may assume that the array is non-empty and the majority element always exist in the array.
     *
     */
    public class MajorityElement {

        //从头开始遍历数组中所有的数,用一个HashMap记录每个数字及数字出现的次数,选出次数大于数组个数一半的数值
        public int majorityElement(int[] nums){
            int length = nums.length;
            int result = nums[0];
            Map<Integer,Integer> times = new HashMap<Integer,Integer>();
            for(int i=0;i<length;i++){
                if(times.containsKey(nums[i])){
                    int time = times.get(nums[i]) + 1;
                    if(time >= length / 2){
                        result = nums[i];
                        break;
                    }
                    times.put(nums[i], time);
                }else{
                    times.put(nums[i], 0);
                }
            }
            return result;
        }
        
        //从leetcode学习的方法,非常巧妙,调用Arrays自动排序接口,因为搜求结果一定会大于一半,所以中间的数值一定就是所求的值
        public int majorityElement1(int[] nums){
            Arrays.sort(nums);
            return nums[nums.length / 2];
        }
        
    }

  • 相关阅读:
    MVC路由测试
    关于Dapper的使用笔记3
    关于Dapper的使用笔记2
    关于Dapper的使用笔记1
    关于WCF与Autofac的整合
    js获取页面元素距离浏览器工作区顶端的距离
    document.body.scrollTop和document.documentElement.scrollTop 以及值为0的问题
    js实现获取对象key名
    微信小程序分包跳转主包页面
    js禁止页面滚动
  • 原文地址:https://www.cnblogs.com/wzyxidian/p/5065022.html
Copyright © 2011-2022 走看看