최근에 전화 상담에서이 질문을했습니다.주어진 목록에서 '최상'요소 찾기
비교가를 이행 적되지 "이 요소의 목록입니다. 그리고 당신은 찾을 수있다"목록에서 가장 "요소. 요소는 서로 비교할 수 있지만, . 예 경우 > B 및 B> C이면 A는 C보다 클 필요가 없습니다.
최상의 요소를 대답으로 반환해야합니다. 이는 목록의 다른 모든 요소보다 우수합니다. 그러한 요소가 없으면 null을 반환합니다. "
내 용액 :
시도 1
간단한 O (N^2) 용액. 각 요소를 서로 다른 요소와 비교합니다.
면접자가 만족하지 못했습니다.
시도 2 :
시작 이후 두번째 요소와 함께 첫 번째 요소를 비교. 'E'요소 중 A> E 일 경우 E를 표시하고 (다른 배열/목록 등을 사용할 수 있음) 더 이상의 비교를 위해 E를 고려하지 않습니다. 이것은 E보다 더 좋은 적어도 하나의 요소가 있기 때문에 E가 분명히 답이 아니기 때문입니다.
복잡도는 여전히 이전 시도와 비교하여 약간 개선 된 O (n^2)이고, 여전히 이다.
그는 여전히 만족하지 않았습니다. 누구든지 더 나은 해결책을 찾아 낼 수 있습니까?
나는 최대 힙이 해결책일지도 모른다고 생각했지만, 비교가 이항 적이 아니기 때문에, 좋지 않을 것이다. ?? – brainydexter
@brainydexter : 예, 비교가 추이 적이 지 않으므로 힙과 같은 데이터 구조는 작동하지 않습니다. – Bhushan