검은 제안 39를 가리킵니다. 배열에서 절반 이상 나타나는 숫자
배열 길이의 절반 이상으로 나타나는 숫자가 배열에 있습니다. 이 숫자를 찾으세요.
배열은 비어 있지 않으며 주어진 배열에는 항상 대부분의 요소가 있다고 가정할 수 있습니다.
예시 1:
输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]
输出: 2
한계:
1 <= 数组长度 <= 50000
문제 해결 아이디어:
- 질문은 절반 이상 나타나는 무언가가 있어야 한다고 말합니다.
- 그런 다음 이 배열을 먼저 정렬하세요.
- 가운데 숫자가 모드 입니다
- 그냥 첨자의 요소를 반환하세요.
class Solution {
public int majorityElement(int[] nums) {
Arrays.sort(nums);//题目说必然有一个数超过一半
return nums[nums.length/2];//所以排序过后,中间那个数必然是那个众数
}
}