zoukankan      html  css  js  c++  java
  • [LeetCode169]Majority Element求一个数组中出现次数大于n/2的数

    题目:

    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.

    思路:可以利用Dictionary将数组中每个数出现的次数记录下来,输出出现次数大于n/2的数

      或者 将数组排序后,数组中间的数即为所求

    代码:

    public class Solution {
        public int MajorityElement(int[] nums) {
            int time = nums.Length / 2;
            /*利用Dictionary
            Dictionary<int,int> dic = new Dictionary<int,int>();
            for(int i = 0;i < nums.Length;i++)
            {
                if(!dic.ContainsKey(nums[i]))
                    dic.Add(nums[i],0);
            }
            for(int j = 0;j < nums.Length;j++)
            {
                if(dic.ContainsKey(nums[j]))
                {
                    dic[nums[j]]++;
                    if(dic[nums[j]] > time)
                        return nums[j];
                }
            }
            return 0;
            */
            
            //将数组排序,中间的数字即为所求
            Array.Sort(nums);
            return nums[time];
        }
    }

        

  • 相关阅读:
    flexible
    arcgis
    vue 语法糖
    sass 的安装 编译 使用
    nodeJs
    微信小程序
    linux cgroups 简介
    git命令
    sublime笔记
    工程优化学习(进退法、黄金分割法、二次插值法、三次插值法、最速下降法)
  • 原文地址:https://www.cnblogs.com/zhangbaochong/p/5060819.html
Copyright © 2011-2022 走看看