문제에 대한 설명 :
크기 n의 배열을 지정해,은, 대중의 수를 찾을 수 있습니다. 배열보다 ⌊ N / 2 ⌋ 원소에서 모드가 발생 횟수를 의미한다.
당신은 배열이 비어 있지 않은 것으로 가정 할 수 있으며, 회중의 지정된 배열 번호는 항상있다.
실시 예 1 개
입력 : [3,2,3]
출력 : 3
실시 예 2 :
입력 [2,2,1,1,1,2,2]
출력 : 2
아이디어는 대답 :
정렬 후, 반복의 수 / 2가 만족 nums.length의 가장 높은 숫자를 얻을, 수는 회중의 수는
질문의 의미 후 :
거기에 달성하기 위해 더 많은 방법이 있지만, 어떻게 문제를 최적화하는 고려 가치가 질문입니다
(단 기능) 개인 응답의 자바 버전 :
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
class Solution {
public int majorityElement(int[] nums) {
int num=nums[0],k=1;
Arrays.sort(nums);
for(int i=0;i<nums.length-1;i++){
if(nums[i]==nums[i+1]){
k++;
if(k>nums.length/2){
num=nums[i];
break;
}
}else{
k=1;
}
}
return num;
}
}
대답은 당신이 더 나은 아이디어가 있다면, 코멘트 영역 조언을 환영합니다 함께 학습의 교환을 촉진, 개인 단점이있을 수 있습니다.
기타 답변 :
그래서 주문 후 배수 공공 회중의 특정 번호, 인덱스에있는 요소가 있기 때문에 N / 2 우리의 번호를 찾을 필요가있다
public int majorityElement(int[] nums) {
Arrays.sort(nums);
return nums[nums.length / 2];
}