File tree Expand file tree Collapse file tree 4 files changed +98
-2
lines changed
solution/2100-2199/2104.Sum of Subarray Ranges Expand file tree Collapse file tree 4 files changed +98
-2
lines changed Original file line number Diff line number Diff line change @@ -165,10 +165,42 @@ func min(a, b int) int {
165
165
166
166
### ** TypeScript**
167
167
168
- <!-- 这里可写当前语言的特殊实现逻辑 -->
169
-
170
168
``` ts
169
+ function subArrayRanges(nums : number []): number {
170
+ const n = nums .length ;
171
+ let res = 0 ;
172
+ for (let i = 0 ; i < n - 1 ; i ++ ) {
173
+ let min = nums [i ];
174
+ let max = nums [i ];
175
+ for (let j = i + 1 ; j < n ; j ++ ) {
176
+ min = Math .min (min , nums [j ]);
177
+ max = Math .max (max , nums [j ]);
178
+ res += max - min ;
179
+ }
180
+ }
181
+ return res ;
182
+ }
183
+ ```
171
184
185
+ ### ** Rust**
186
+
187
+ ``` rust
188
+ impl Solution {
189
+ pub fn sub_array_ranges (nums : Vec <i32 >) -> i64 {
190
+ let n = nums . len ();
191
+ let mut res : i64 = 0 ;
192
+ for i in 1 .. n {
193
+ let mut min = nums [i - 1 ];
194
+ let mut max = nums [i - 1 ];
195
+ for j in i .. n {
196
+ min = min . min (nums [j ]);
197
+ max = max . max (nums [j ]);
198
+ res += (max - min ) as i64 ;
199
+ }
200
+ }
201
+ res
202
+ }
203
+ }
172
204
```
173
205
174
206
### ** ...**
Original file line number Diff line number Diff line change @@ -153,7 +153,41 @@ func min(a, b int) int {
153
153
### ** TypeScript**
154
154
155
155
``` ts
156
+ function subArrayRanges(nums : number []): number {
157
+ const n = nums .length ;
158
+ let res = 0 ;
159
+ for (let i = 0 ; i < n - 1 ; i ++ ) {
160
+ let min = nums [i ];
161
+ let max = nums [i ];
162
+ for (let j = i + 1 ; j < n ; j ++ ) {
163
+ min = Math .min (min , nums [j ]);
164
+ max = Math .max (max , nums [j ]);
165
+ res += max - min ;
166
+ }
167
+ }
168
+ return res ;
169
+ }
170
+ ```
156
171
172
+ ### ** Rust**
173
+
174
+ ``` rust
175
+ impl Solution {
176
+ pub fn sub_array_ranges (nums : Vec <i32 >) -> i64 {
177
+ let n = nums . len ();
178
+ let mut res : i64 = 0 ;
179
+ for i in 1 .. n {
180
+ let mut min = nums [i - 1 ];
181
+ let mut max = nums [i - 1 ];
182
+ for j in i .. n {
183
+ min = min . min (nums [j ]);
184
+ max = max . max (nums [j ]);
185
+ res += (max - min ) as i64 ;
186
+ }
187
+ }
188
+ res
189
+ }
190
+ }
157
191
```
158
192
159
193
### ** ...**
Original file line number Diff line number Diff line change
1
+ impl Solution {
2
+ pub fn sub_array_ranges ( nums : Vec < i32 > ) -> i64 {
3
+ let n = nums. len ( ) ;
4
+ let mut res: i64 = 0 ;
5
+ for i in 1 ..n {
6
+ let mut min = nums[ i - 1 ] ;
7
+ let mut max = nums[ i - 1 ] ;
8
+ for j in i..n {
9
+ min = min. min ( nums[ j] ) ;
10
+ max = max. max ( nums[ j] ) ;
11
+ res += ( max - min) as i64 ;
12
+ }
13
+ }
14
+ res
15
+ }
16
+ }
Original file line number Diff line number Diff line change
1
+ function subArrayRanges ( nums : number [ ] ) : number {
2
+ const n = nums . length ;
3
+ let res = 0 ;
4
+ for ( let i = 0 ; i < n - 1 ; i ++ ) {
5
+ let min = nums [ i ] ;
6
+ let max = nums [ i ] ;
7
+ for ( let j = i + 1 ; j < n ; j ++ ) {
8
+ min = Math . min ( min , nums [ j ] ) ;
9
+ max = Math . max ( max , nums [ j ] ) ;
10
+ res += max - min ;
11
+ }
12
+ }
13
+ return res ;
14
+ }
You can’t perform that action at this time.
0 commit comments