Skip to content

Commit 528370c

Browse files
authored
feat: add typescript solution to lc problem: No.0152.Maximum Product Subarray (#512)
1 parent d263209 commit 528370c

File tree

3 files changed

+46
-0
lines changed

3 files changed

+46
-0
lines changed

solution/0100-0199/0152.Maximum Product Subarray/README.md

+17
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,23 @@ class Solution {
7676
}
7777
```
7878

79+
### **TypeScript**
80+
81+
```ts
82+
function maxProduct(nums: number[]): number {
83+
let n = nums.length;
84+
let preMax = nums[0], preMin = nums[0], ans = nums[0];
85+
for (let i = 1; i < n; ++i) {
86+
let cur = nums[i];
87+
let x = preMax, y = preMin;
88+
preMax = Math.max(x * cur, y * cur, cur);
89+
preMin = Math.min(x * cur, y * cur, cur);
90+
ans = Math.max(preMax, ans);
91+
}
92+
return ans;
93+
};
94+
```
95+
7996
### **C#**
8097

8198
```cs

solution/0100-0199/0152.Maximum Product Subarray/README_EN.md

+17
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,23 @@ class Solution {
7272
}
7373
```
7474

75+
### **TypeScript**
76+
77+
```ts
78+
function maxProduct(nums: number[]): number {
79+
let n = nums.length;
80+
let preMax = nums[0], preMin = nums[0], ans = nums[0];
81+
for (let i = 1; i < n; ++i) {
82+
let cur = nums[i];
83+
let x = preMax, y = preMin;
84+
preMax = Math.max(x * cur, y * cur, cur);
85+
preMin = Math.min(x * cur, y * cur, cur);
86+
ans = Math.max(preMax, ans);
87+
}
88+
return ans;
89+
};
90+
```
91+
7592
### **C#**
7693

7794
```cs
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
function maxProduct(nums: number[]): number {
2+
let n = nums.length;
3+
let preMax = nums[0], preMin = nums[0], ans = nums[0];
4+
for (let i = 1; i < n; ++i) {
5+
let cur = nums[i];
6+
let x = preMax, y = preMin;
7+
preMax = Math.max(x * cur, y * cur, cur);
8+
preMin = Math.min(x * cur, y * cur, cur);
9+
ans = Math.max(preMax, ans);
10+
}
11+
return ans;
12+
};

0 commit comments

Comments
 (0)