[면접 문제] 맵 을 사용 하지 않 고 전체 수량의 절반 이 넘 는 숫자 를 구하 세 요.
public static int getAppearBySort(final int[] arr)
{
Arrays.sort(arr);
int halfLen = arr.length / 2;
int half = arr.length % 2 == 0 ? (halfLen - 1) : halfLen;
for(int i = 0; i <= half; i ++)
{
if(arr[i] == arr[i + halfLen])
{
return arr[i];
}
}
return -1;
}
만약 순 전 히 알고리즘 으로 실현된다 면 방법 은 다음 과 같다.
public static int getAvgMax(int[] arr)
{
int len = arr.length;
int nums = len/2;
int count;
int k;
/**
* len-nums
*/
for(int i=0; i<len-nums; i++)
{
count = 1;
/**
* K , , , ,
* ( ) , -1 , ,
*
*/
k = len-nums-i;// , K ,
for(int j=i+1;i<len;j++)
{
if(arr[i] == arr[j])
{
count = count + 1;
}
else
{
k = k - 1;
if(k == 0)
{
break;
}
}
if(count>nums)
{
return arr[i];
}
}
}
return -1;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.