剑指Offer39.数组中出现次数超过一半的数字

Posted ghlz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指Offer39.数组中出现次数超过一半的数字相关的知识,希望对你有一定的参考价值。

题目:

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。

你可以假设数组是非空的,并且给定的数组总是存在多数元素。 

示例 1:

输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]
输出: 2

限制:

1 <= 数组长度 <= 50000

 

解题思路:

由于要寻找的是出现次数超过数组长度一半的数字,首先想到的数组进行排序,其次就发现所要寻找的数字就是数组最中间的数字。

 

代码:

public static int majorityElement(int[] nums) {
    Arrays.sort(nums);
    return nums[(nums.length)/2];
}

 

以上是关于剑指Offer39.数组中出现次数超过一半的数字的主要内容,如果未能解决你的问题,请参考以下文章

剑指 Offer 39. 数组中出现次数超过一半的数字 的 详细题解

Java 剑指offer(39) 数组中出现次数超过一半的数字

剑指 Offer 39. 数组中出现次数超过一半的数字

剑指 Offer 39. 数组中出现次数超过一半的数字

剑指offer39数组中出现次数超过一半的数字

[LeetCode]剑指 Offer 39. 数组中出现次数超过一半的数字