이 문제는 기본적으로 알고리즘 최적화 문제입니다.배열의 모든 숫자에 가장 가까운 번호 찾기
우리는 n 개의 원소를 가진 목록을 가지고 있습니다. 예를 들어 {n1,n2,n3...nk}
이 목록은 분류되고 우리는
n1<=ni<=nk
- 각 숫자에서
ni
의 거리의 합이 최소가되는 숫자 NI를 찾을 수있다.
는 (nk-n1+1)
가능한 숫자 합계가있을 수 있지만, 우리의 목표는 다른 모든 숫자에 가장 가까운 입니다 수 ni
을 찾는 것입니다.
브 루트 포스 방식은 n1
에서 nk까지 반복 할 수 있으며 모든 목록 번호에서 거리 합계 을 계산할 수 있습니다. 이렇게하면 쉽게 목록의 다른 모든 숫자에 가장 가까운 숫자를 파악할 수 있습니다.
하지만이 방법의 문제점은 시간 복잡성 측면에서 좋지 않다는 점입니다. 이 접근법의 시간 복잡도는 O(n^2)
입니다.
더 적은 시간에이 문제를 해결할 수있는 더 나은 방법이 있다고 생각합니다. 복잡합니다.
모든 접근법을 이해할 수 있습니다.
"거리"의 정의는 무엇을 사용하십니까? –
목록이 정렬되었다고 언급 했으므로 이진 검색으로 검색하는 방법은 어떻습니까? – kamaci
예 거리 (a, b) = abs (ab) – vicky