k 곱하기 발생하는 배열에 숫자가 존재하는지 확인하기 위해 나누기 및 정복 알고리즘 (O (nlgn) 런타임)을 만들고 싶습니다. 이 문제에 대한 제약 조건은 배열의 객체에 대해 평등/불균등 비교 메소드 만 정의된다는 것입니다 (즉, <,>을 사용할 수 없음).배열에 k 번 발생하는 숫자가 있는지 확인하십시오.
그래서 나는 같은 크기 (대략)의 k 조각으로 배열을 분할하는 것을 포함하여 많은 접근법을 시도했다. 접근 방식은 배열에서 대다수 항목을 찾는 것과 비슷하지만 대다수의 경우 배열을 분할 할 때 대다수 항목이있는 경우 절반이 반드시 있어야한다는 것을 알 수 있습니다. 나를 올바른 방향으로 인도 할 수있는 조언이나 조언
EDIT : 배열을 반으로 나누고 재귀 적 솔루션을 사용하여 다수 항목을 찾는 문제가 k가 n/4 또는 n/4 일 수있는 다른 상황으로 확장 될 수 있는지 궁금합니다. 5 등
아마도 n/k를 사용하여 질문을 표현해야 할 것입니다.
k는 입력 또는 고정 상수입니까? – user2357112
또한 이것이 실제로 가능한지 알고 있습니까? – user2357112
누가이 문제를 할당 했습니까? 그게 동기가 된거야? 왜 그것이 가능하다고 믿습니까? –