문제는 가장 긴 하위 시퀀스 를 찾기 위해 가장 짧은 구현 을 작성하는 것 입니다.
예 : S를 시퀀스 1 5 7 1 8 4 3 5로 설정합니다 [S의 길이 = 8]
- 길이가 0 인 하위 시퀀스가 1 개 있습니다.
- 길이가 1 {1,5,7,8,4,3} 인 6 개의 하위 시퀀스 [모두 증가하는 것으로 간주 됨]
- 길이 7의 (7 * 8) / 2 하위 시퀀스 (그러나 중복을 제거 할 것임), 증가하는 하위 시퀀스는 강한 검은 색입니다.
{ 15, 17 , 11, 18,14,13,57 , 51, 58 , 54,53,55,71, 78 , 74,73,75,84,83,85,43, 45,35 }
[우리는 엄격하게 증가하는 하위 시퀀스에만 관심이 있음]
[ 시퀀스 내부의 요소 순서 를 변경할 수 없으므로 예제 시퀀스에는 하위 시퀀스가 없습니다 [37]
- 우리는 길이 4의 하위 시퀀스가 1578 인 증가하지만 길이 5의 하위 시퀀스는 없으므로 가장 긴 증가하는 하위 시퀀스의 길이 = 4를 고려합니다.
입력 :
a 1 a 2 ... a N (시퀀스)
모든 숫자는 10 3
N <= 1000 보다 작은 양의 정수입니다.
출력 :
입력 시퀀스의 가장 긴 증가 서브 시퀀스의 길이를 나타내는 하나의 정수
sample input(1)
1 2 4 2 5
sample output(1)
4
sample input(2)
1 5 7 1 8 4 3 5
sample output(2)
4
귀하의 코드는 적시에 실행되어야 합니다. 여기에 제출하기 전에이 사례에서 코드를 테스트 하십시오 (또한 링크에는 290 바이트 c ++ 11 솔루션이 포함되어 있습니다)
파일 / stdin 또는 함수 매개 변수에서 입력을 가져 와서 출력을 파일 / stdout으로 인쇄하거나 함수를 작성하는 경우 값을 리턴 할 수 있습니다
스코어 보드
function f(){...}) 또는 내부 함수 (그냥 ...) 의 바이트 수를 계산해야 합니까? 외부 함수를 세면 익명 함수가 허용됩니까?