File tree Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Original file line number Diff line number Diff line change 1+ class Solution {
2+ public int maxProduct (int [] nums ) {
3+ if (nums .length == 1 )
4+ return nums [0 ];
5+ if (nums .length == 2 ) {
6+ return Math .max (nums [0 ], Math .max (nums [0 ] * nums [1 ], nums [1 ]));
7+ }
8+
9+ int len = nums .length ;
10+ int [] max = new int [len ];
11+ int [] min = new int [len ];
12+ int overall = 0 ;
13+
14+ max [0 ] = min [0 ] = overall = nums [0 ];
15+
16+ for (int i = 1 ; i < len ; i ++) {
17+ // ํ๋ณด 3์ ์ค๋น
18+ int justNum = nums [i ];
19+ // ๊ณ์ ๋ํ ๊ฐ
20+ int keep = justNum * max [i -1 ];
21+ // ์ด์ ์ต์์ ์์ ๊ณฑํด์ ๋ฆฌ๋ฒ์ค
22+ int reverse = justNum * min [i -1 ];
23+
24+ // max์ min ๋ฐฐ์ด์ ์
๋ฐ์ดํธ
25+ max [i ] = Math .max (justNum , Math .max (keep , reverse ));
26+ min [i ] = Math .min (justNum , Math .min (keep , reverse ));
27+
28+ // overall์ ์
๋ฐ์ดํธ, ๋์ ๋น๊ต๋ก ์ต๋ ์ ์ญ ์ ์ง
29+ overall = Math .max (overall , max [i ]);
30+ }
31+ return overall ;
32+ }
33+ }
You canโt perform that action at this time.
0 commit comments