File tree Expand file tree Collapse file tree 1 file changed +40
-0
lines changed
Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Original file line number Diff line number Diff line change 1+ // TC: O(n)
2+ // SC: O(1)
3+ function maxProduct ( nums : number [ ] ) : number {
4+ let prevMax = nums [ 0 ] ;
5+ let prevMin = nums [ 0 ] ;
6+ let maxProd = nums [ 0 ] ;
7+
8+ for ( let i = 1 ; i < nums . length ; i ++ ) {
9+ const currentNum = nums [ i ] ;
10+ const tempMax = Math . max (
11+ currentNum ,
12+ prevMax * currentNum ,
13+ prevMin * currentNum
14+ ) ;
15+ prevMin = Math . min ( currentNum , prevMax * currentNum , prevMin * currentNum ) ;
16+ prevMax = tempMax ;
17+ maxProd = Math . max ( maxProd , prevMax ) ;
18+ }
19+
20+ return maxProd ;
21+ }
22+
23+
24+ // TC: O(n^2)
25+ // SC: O(1)
26+ // function maxProduct(nums: number[]): number {
27+ // let largestProd = -Infinity;
28+ // let subProd = 1;
29+
30+ // for (let i = 0; i < nums.length; i++) {
31+ // subProd = 1;
32+ // for (let j = i; j < nums.length; j++) {
33+ // subProd *= nums[j];
34+ // largestProd = Math.max(largestProd, subProd);
35+ // }
36+ // }
37+
38+ // return largestProd;
39+ // }
40+
You can’t perform that action at this time.
0 commit comments