이 제출물을 팔로우합니다
- 팔로우하는 게시물 피드에서 업데이트를 확인할 수 있습니다
- 정보 수신 기본 설정에 따라 이메일을 받을 수 있습니다
Given an array A[1...N], it finds the position of the element with the minimum value between two given indices.
It returns the answer in constant time. The RMQ problem can be used to recover the lca (lowest common ancestor) in a graph in constant time. See http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=lowestCommonAncestor for more details.
Time complexity: O(N log(N))
Space complexity: O(N log(N))
Example
A = [-1 5 0 3 -6 4 2 1 0 -1];
N = length(A);
M = rmq(A);
% Find the position of the minimum element between indices i, j
i = 2;
j = 6;
k = floor(log2(j - i + 1));
if A(M(i,k+1)) <= A(M(j-2^k+1,k+1))
idx = M(i,k+1);
else
idx = M(j-2^k+1,k+1);
end
인용 양식
Georgios Papachristoudis (2026). Range minimum query (https://kr.mathworks.com/matlabcentral/fileexchange/48841-range-minimum-query), MATLAB Central File Exchange. 검색 날짜: .
