입력:
0보다 큰 정수의 비어 있지 않은 시퀀스 (길이가 1보다 큼)
산출:
시퀀스를 포함하여 최소 및 최대 시퀀스 요소 사이에서 가장 긴 하위 시퀀스의 모든 요소 중 가장 큰 곱입니다.
노트 :
최소 및 최대 요소가 반복 될 수 있기 때문에, 가능한 한 가장 긴 서브 시퀀스를 찾기 위해 필요한 정답에 이르기까지, 그 한쪽 끝이 시퀀스의 최소 요소이고 다른 끝이 최대 요소입니다. 가장 긴 하위 시퀀스가 여러 개인 경우 제품이 가장 큰 하위 시퀀스를 선택하십시오.
예 :
첫 번째 예 :
입력: [5, 7, 3, 2, 1, 2, 2, 7, 5]
산출: 42
설명 :
min == 1
, max == 7
. 끝에 min과 max가있는 두 가지 가능한 하위 시퀀스가 있습니다 : [1, 2, 2, 7]
및 [7, 3, 2, 1]
. 길이는 동일하므로 제품 비교 : 7*3*2*1 == 42
및 1*2*2*7 == 28
. 이므로 42 >= 28
답변하십시오 42
.
두 번째 예 :
입력: [1, 2, 2, 2, 4, 3, 3, 1]
산출: 32
설명 :
min == 1
, max == 4
. 2 개의 하위 시퀀스 : [1, 2, 2, 2, 4]
및 [4, 3, 3, 1]
. 길이 [1, 2, 2, 2, 4]
가 길이보다 깁니다 [4, 3, 3, 1]
. 제품 : 1*2*2*2*4 == 32
=> 답변은 32
입니다.
3d 예 :
입력: [1, 2, 3, 4, 3, 3, 1]
산출: 36
간단한 설명 :
min == 1
, max == 4
. 2 개의 하위 시퀀스 : [1, 2, 3, 4]
및 [4, 3, 3, 1]
. 1*2*3*4 == 24
, 4*3*3*1 == 36
, 36 >= 24
=> 답이다 36
.
네 번째 예 :
입력: [2, 2, 2]
산출: 8
설명 :
min == 2
, max == 2
. 두 가지 다른 하위 시퀀스 : [2, 2]
및 [2, 2, 2]
. 길이 [2, 2, 2]
가 길이보다 깁니다 [2, 2]
. 제품 : 2*2*2 == 8
=> 답변은 8
입니다.
더 많은 (무작위) 예 :
>>>[7, 2, 3, 6, 8, 6, 2, 5, 4, 3]
288
>>>[3, 3, 8, 9, 1, 7, 7, 2, 2, 4]
9
>>>[3, 2, 6, 5, 4, 1, 8, 8, 7, 9]
4032
>>>[7, 4, 2, 8, 8, 3, 9, 9, 5, 6]
31104
솔루션을 확인하십시오.
다음은 작업의 요구 사항을 충족시키는 Python 3 람다 (788 바이트)입니다 .
lambda O: __import__('functools').reduce(__import__('operator').mul,O[[[slice(O.index(max(O)),len(O)-1-O[::-1].index(min(O))+1),slice(O.index(min(O)),(len(O)-1-O[::-1].index(max(O)))+1)][__import__('functools').reduce(__import__('operator').mul,O[O.index(min(O)):(len(O)-1-O[::-1].index(max(O)))+1],1)>=__import__('functools').reduce(__import__('operator').mul,O[O.index(max(O)):len(O)-1-O[::-1].index(min(O))+1],1)],slice(O.index(min(O)),(len(O)-1-O[::-1].index(max(O)))+1),slice(O.index(max(O)),len(O)-1-O[::-1].index(min(O))+1)][(len(range(O.index(min(O)),(len(O)-1-O[::-1].index(max(O)))+1))>len(range(O.index(max(O)),len(O)-1-O[::-1].index(min(O))+1)))-(len(range(O.index(min(O)),(len(O)-1-O[::-1].index(max(O)))+1))<len(range(O.index(max(O)),len(O)-1-O[::-1].index(min(O))+1)))]],1)
우승자:
가장 짧은 해결책이 이길 것입니다. 모든 프로그래밍 언어가 허용됩니다.
추신 : 나는 당신의 해결책에 대한 설명에 기뻐할 것입니다