(152) 최대 제품 부분 배열
정수 배열 주어 nums
, 최대 제품이 (적어도 하나 개의 번호를 포함) 어레이 내의 인접 서브 어레이를 찾는.
예 1 :
입력 : [2,3, -2,4]
출력 : 6
설명 : [2,3]는 큰 생성물 (6)을 갖는다.
예 2 :
INPUT [-2,0, -1] 출력 : 0 설명 :.의 결과 때문에 [-2, -1]하지 않는 서브 어레이 인, 2 할 수없는
질문의 의미 (숫자 배열 주어진있어서 긍정적 제외하고 영)의 최대 지속적인 제품 부분 배열의 항목을 찾아
다음과 같이 코드는 다음과 같습니다
/ * * 파라미터 :이 {번호 []}는 nums는 * @return는 {번호} * / VAR은 maxProduct = 함수 합니다 (nums) { 송출 MX는 = nums [0 ] Mn의 내버려 = nums [0 ] 송출 된 RES = nums [0 ] 대 (I = 송출 1; I는 nums.length를 <; I는 ++. ) { // 최대 : 최대 사전 배열 나는 제품 + 1 // 분 : 제 i + 1 개 어레이 전에 최소 제품 // DP 개념 및 행 * 최대 값까지 최소 전류 상품 배열 항목 현재 항목 배열 현재 아이템을 비교하기 전에 * 항목과 끊임없이 최대를 갱신 송출 MX = 최대, 최소값 = ; Mn이 MX * = Math.max (Math.max (최소 nums [I] 상기 nums [I]) 최대 * nums [I]) 망간= Math.min (Math.min (최대 *의 nums [I] nums [I])의 분 * nums [I]); 입술 = Math.max (입술, MX); } 반환 입술을; };