题干
给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。
你可以假设数组是非空的,并且给定的数组总是存在多数元素。
示例 1:
输入: [3,2,3]
输出: 3
示例 2:
输入: [2,2,1,1,1,2,2]
输出: 2
想法
这道题很简单 之前做过
之前的想法是遍历一次 直接返回最长长度那个数
今天做了一遍 想法是直接排序
然后返回中间 那个数
因为
给定的数组总是存在多数元素。
所以排序后中间一定是那个数
Java代码
package daily;
import java.util.Arrays;
public class MajorityElement {
public int majorityElement(int[] nums) {
//排序
Arrays.sort(nums);
int len=nums.length;
return nums[len/2];
}
public static void main(String[] args) {
MajorityElement majorityElement = new MajorityElement();
int[] nums = {2, 2, 1, 1, 1, 2, 2};
System.out.println(majorityElement.majorityElement(nums));
}
}