아래와 같이 "오프셋"및 "길이"속성을 가진 "범위"개체의 배열이 있습니다. 오름차순으로 "오프셋"으로 정렬한다고 가정합니다.가장 긴 연속 서브 시퀀스 알고리즘
범위 배열은 포함이 경우
Offset Length Index
------- ------- -------
100 10 0
110 2 1
112 5 2
117 3 3
300 5 4
305 5 5
400 5 6
405 10 7
415 2 8
417 4 9
421 7 10
428 1 11
429 6 12
500 4 13
504 9 14
연속 서브 시퀀스는 다음과 같습니다
Sequence #1 indices: 0, 1, 2, 3
Sequence #2 indices: 4, 5
Sequence #3 indices: 6, 7, 8, 9, 10, 11, 12 <-- (longest!!)
Sequence #4 indices: 13, 14
는 하나의 긴 순서가 될 것이라고 가정한다. 항목을 반복하면서 각 연속 시퀀스에 대해 새로운 배열을 만들고 가장 큰 배열을 반환한다고 생각했지만 다소 최적이라고 생각합니다. 이 작업을 수행하는 더 좋은 방법이 있습니까? 저는 C# 2.0에서 구현하고 있습니다. 이 함수는 가장 긴 서브 시퀀스의 요소를 포함하는 배열 또는 원래 배열의 가장 긴 서브 시퀀스의 시작 및 끝 인덱스를 반환해야합니다.
감사합니다.
당신이 맞습니다 - 시퀀스가 증가하는 것이 아니라 연속적으로 증가하는 것이 훨씬 더 간단합니다. 내 대답을 삭제했습니다. –
Antii에 감사드립니다! 당신 말이 맞아요. 그들은 끈이고 겹치지 않습니다. 하나의 질문 : 만약 내가 손가락이 없다면? :) * haha * –