File tree Expand file tree Collapse file tree 3 files changed +70
-0
lines changed
solution/1500-1599/1567.Maximum Length of Subarray With Positive Product Expand file tree Collapse file tree 3 files changed +70
-0
lines changed Original file line number Diff line number Diff line change @@ -124,6 +124,31 @@ class Solution {
124
124
}
125
125
```
126
126
127
+ ### ** TypeScript**
128
+
129
+ ``` ts
130
+ function getMaxLen(nums : number []): number {
131
+ // 连续正数计数n1, 连续负数计数n2
132
+ let n1 = nums [0 ] > 0 ? 1 : 0 , n2 = nums [0 ] < 0 ? 1 : 0 ;
133
+ let ans = n1 ;
134
+ for (let i = 1 ; i < nums .length ; ++ i ) {
135
+ let cur = nums [i ];
136
+ if (cur == 0 ) {
137
+ n1 = 0 , n2 = 0 ;
138
+ } else if (cur > 0 ) {
139
+ ++ n1 ;
140
+ n2 = n2 > 0 ? n2 + 1 : 0 ;
141
+ } else {
142
+ let t1 = n1 , t2 = n2 ;
143
+ n1 = t2 > 0 ? t2 + 1 : 0 ;
144
+ n2 = t1 + 1 ;
145
+ }
146
+ ans = Math .max (ans , n1 );
147
+ }
148
+ return ans ;
149
+ };
150
+ ```
151
+
127
152
### ** C++**
128
153
129
154
``` cpp
Original file line number Diff line number Diff line change @@ -119,6 +119,31 @@ class Solution {
119
119
}
120
120
```
121
121
122
+ ### ** TypeScript**
123
+
124
+ ``` ts
125
+ function getMaxLen(nums : number []): number {
126
+ // 连续正数计数n1, 连续负数计数n2
127
+ let n1 = nums [0 ] > 0 ? 1 : 0 , n2 = nums [0 ] < 0 ? 1 : 0 ;
128
+ let ans = n1 ;
129
+ for (let i = 1 ; i < nums .length ; ++ i ) {
130
+ let cur = nums [i ];
131
+ if (cur == 0 ) {
132
+ n1 = 0 , n2 = 0 ;
133
+ } else if (cur > 0 ) {
134
+ ++ n1 ;
135
+ n2 = n2 > 0 ? n2 + 1 : 0 ;
136
+ } else {
137
+ let t1 = n1 , t2 = n2 ;
138
+ n1 = t2 > 0 ? t2 + 1 : 0 ;
139
+ n2 = t1 + 1 ;
140
+ }
141
+ ans = Math .max (ans , n1 );
142
+ }
143
+ return ans ;
144
+ };
145
+ ```
146
+
122
147
### ** C++**
123
148
124
149
``` cpp
Original file line number Diff line number Diff line change
1
+ function getMaxLen ( nums : number [ ] ) : number {
2
+ // 连续正数计数n1, 连续负数计数n2
3
+ let n1 = nums [ 0 ] > 0 ? 1 : 0 , n2 = nums [ 0 ] < 0 ? 1 : 0 ;
4
+ let ans = n1 ;
5
+ for ( let i = 1 ; i < nums . length ; ++ i ) {
6
+ let cur = nums [ i ] ;
7
+ if ( cur == 0 ) {
8
+ n1 = 0 , n2 = 0 ;
9
+ } else if ( cur > 0 ) {
10
+ ++ n1 ;
11
+ n2 = n2 > 0 ? n2 + 1 : 0 ;
12
+ } else {
13
+ let t1 = n1 , t2 = n2 ;
14
+ n1 = t2 > 0 ? t2 + 1 : 0 ;
15
+ n2 = t1 + 1 ;
16
+ }
17
+ ans = Math . max ( ans , n1 ) ;
18
+ }
19
+ return ans ;
20
+ } ;
You can’t perform that action at this time.
0 commit comments