주요 TOP 얼굴 질문 -java을 달성하기 위해 모드 -leetcode 프로그래밍의 질문을 구걸

문제에 대한 설명 :
크기 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];
	}

추천

출처blog.csdn.net/fallwind_of_july/article/details/93143387