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