소개:
이러한 두 질문 SO (동일한 클래스 의심)에 의해 고무 : 인접 요소없이 자바 최대 액수의 부분 배열의 요소의 출력 및 배열의 비 인접 요소들의 최대 합을 출력한다 .
도전:
정수 목록이 주어지면 가장 높은 합계를 가진 인접하지 않은 요소로 구성된 하위 시퀀스를 출력하십시오. 다음은 몇 가지 예입니다.
[1,2,3,-1,-3,2,5]
0부터 시작하는 인덱스 에서[1,3,5]
(합계9
)가됩니다[0,2,6]
.[4,5,4,3]
어느 초래[4,4]
(a의 합8
0 기반 인덱스 AT)[0,2]
또는[5,3]
(도의 합으로8
0 기반 인덱스에서)[1,3]
.[5,5,10,100,10,5]
0부터 시작하는 인덱스 또는 에서[5,100,5]
(합계110
)가됩니다 .[0,3,5]
[1,3,5]
위의 예에서 가장 중요한 것은 요소를 포함하는 인덱스가 서로 2 이상 떨어져 있습니다. 예제를 [5,5,10,100,10,5]
더 자세히 살펴보면 인접하지 않은 항목을 포함하는 다음과 같은 잠재적 하위 시퀀스가 있습니다. 아래에 지수가 있습니다. 그 아래에 그들의 합계와 함께 :
[[5],[10],[100],[10],[5],[5],[100,5],[10,5],[10,10],[5,5],[5,10],[5,100],[5,5],[5,10],[5,100],[5,10],[5,100,5],[5,100,5],[5,10,5],[5,10,10]] // non-adjacent subsequences
[[5],[ 4],[ 3],[ 2],[1],[0],[ 3,5],[ 2,5],[ 2, 4],[1,5],[1, 4],[1, 3],[0,5],[0, 4],[0, 3],[0, 2],[1, 3,5],[0, 3,5],[0, 2,5],[0, 2, 4]] // at these 0-based indices
[ 5, 10, 100, 10, 5, 5, 105, 15, 20, 10, 15, 105, 10, 15, 105, 15, 110, 110, 20, 25] // with these sums
^ ^ // and these two maximums
최대 합은이므로 결과로 110
출력 [5,100,5]
합니다.
도전 규칙 :
- 인덱스 + 값의 키-값 쌍을 출력 할 수 있습니다. 따라서 대신 또는 결과로
[5,100,5]
출력 할 수 있습니다 (또는 / 0 기반 대신 1 기반 인덱싱을 사용하는 경우).[[0,5],[3,100],[5,5]]
[[1,5],[3,100],[5,5]]
[[1,5],[4,100],[6,5]]
[[2,5],[4,100],[6,5]]
- 키-값 쌍을 사용하는 경우 쌍 인덱스로 인해 어떤 값이 의미가 있는지 명확하기 때문에 역순 또는 임의 순서 일 수도 있습니다.
- 값이없는 인덱스 만 출력 할 수 없습니다. 값 또는 키 / 값 쌍으로 값 / 표시를 출력해야합니다 (또는 선택한 언어에서 키-값 쌍을 사용할 수없는 경우 동일한 크기의 '키'및 '값'에 대한 두 개의 분리 된 목록).
- 가능한 모든 하위 시퀀스를 하나가 아닌 최대 합계로 출력 할 수 있습니다.
- 예제에서 볼 수 있듯이 입력 목록에는 음수 값과 중복 값도 포함될 수 있습니다. 당신은 입력 정수 범위 내에있는 가정 할 수있다 .
- 출력 목록은 비워 둘 수 없으며 항상 하나 이상의 요소를 포함해야합니다 (목록에 음수 값만 포함 된 경우 가장 작은 음수 값이 하나만 포함 된 목록이 결과로 출력 됨-마지막 두 테스트 사례 참조).
- 하나의 가능한 출력이 있지만 여러 개의 다른 인덱스에 대해 중복 된 것처럼 보이더라도 두 출력을 모두 출력 할 수 있습니다. (즉, 위의 예
[[5,100,5],[5,100,5]]
는 가능한 두 가지 색인 조합에 대해 출력 될 수 있습니다 ).
테스트 사례 :
Input: Possible outputs: At 0-based indices: With sum:
[1,2,3,-1,-3,2,5] [1,3,5] [0,2,6] 9
[4,5,4,3] [4,4]/[5,3] [0,2]/[1,3] 8
[5,5,10,100,10,5] [5,100,5] [0,3,5]/[1,3,5] 110
[10] [10] [0] 10
[1,1,1] [1,1] [0,2] 2
[-3,7,4,-2,4] [7,4] [1,4] 11
[1,7,4,-2] [7] [1] 7
[1,2,-3,-4,5,6,-7] [2,6] [1,5] 8
[800,-31,0,0,421,726] [800,726]/[800,0,726] [0,5]/[0,3,5]/[0,2,5] 1526
[-1,7,8,-5,40,40] [8,40] [2,4]/[2,5] 48
[-5,-18,-3,-1,-10] [-1] [3] -1
[0,-3,-41,0,-99,-2,0] [0]/[0,0]/[0,0,0] [0]/[3]/[6]/[0,3]/
[0,6],[3,6]/[0,3,6] 0
powerset
하위 집합이 아닌가요? 하지만 일련의 하위 시퀀스를 반환하는 것 같습니다. [4,5,4,3]은 [4,4]가 분명하게 설정되지 않은 [4,4]를 초래 합니다.
[5,100,5]
세 번째 예에서는 두 번입니다.