저는 지난 두 시간 동안이 알고리즘을 이해하려고 노력했지만 얻을 수는 없습니다. 이해할 수있는 방식으로 설명해주십시오. 그 최대 값이 현재 요소의 값보다 작게되도록 현재 요소 앞 요소의 긴 시퀀스의 한 길이만큼 증분으로 각 요소'가장 길게 증가하는 서브 시퀀스'문제를 해결하기위한 알고리즘을 설명하십시오.
function lis_length(a)
n := a.length
q := new Array(n)
for k from 0 to n:
max := 0;
for j from 0 to k, if a[k] > a[j]:
if q[j] > max, then set max = q[j].
q[k] := max + 1;
max := 0
for i from 0 to n:
if q[i] > max, then set max = q[i].
return max;
연필과 종이에 10 요소 배열로 코드를 탐색하십시오. 또는 함수에 대한 문서로 돌아가십시오. –
^@ RaymondChen 이것은별로 도움이되지 않습니다. 이렇게 제안하는 것보다 아무것도 게시하지 않는 것이 좋습니다. 그것은이 사이트의 답변 품질을 떨어 뜨립니다.이 사이트는 커뮤니티에 해를 끼치 지 않으며 연장을 통해 해를 끼칩니다. – guribe94