File tree Expand file tree Collapse file tree
solution/3600-3699/3660.Jump Game IX Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -209,6 +209,35 @@ function maxValue(nums: number[]): number[] {
209209}
210210```
211211
212+ #### Rust
213+
214+ ``` rust
215+ impl Solution {
216+ pub fn max_value (nums : Vec <i32 >) -> Vec <i32 > {
217+ let n = nums . len ();
218+ let mut ans = vec! [0 ; n ];
219+ let mut pre_max = vec! [nums [0 ]; n ];
220+
221+ for i in 1 .. n {
222+ pre_max [i ] = pre_max [i - 1 ]. max (nums [i ]);
223+ }
224+
225+ let mut suf_min = i32 :: MAX ;
226+
227+ for i in (0 .. n ). rev () {
228+ ans [i ] = if i == n - 1 || pre_max [i ] <= suf_min {
229+ pre_max [i ]
230+ } else {
231+ ans [i + 1 ]
232+ };
233+ suf_min = suf_min . min (nums [i ]);
234+ }
235+
236+ ans
237+ }
238+ }
239+ ```
240+
212241<!-- tabs: end -->
213242
214243<!-- solution: end -->
Original file line number Diff line number Diff line change @@ -206,6 +206,35 @@ function maxValue(nums: number[]): number[] {
206206}
207207```
208208
209+ #### Rust
210+
211+ ``` rust
212+ impl Solution {
213+ pub fn max_value (nums : Vec <i32 >) -> Vec <i32 > {
214+ let n = nums . len ();
215+ let mut ans = vec! [0 ; n ];
216+ let mut pre_max = vec! [nums [0 ]; n ];
217+
218+ for i in 1 .. n {
219+ pre_max [i ] = pre_max [i - 1 ]. max (nums [i ]);
220+ }
221+
222+ let mut suf_min = i32 :: MAX ;
223+
224+ for i in (0 .. n ). rev () {
225+ ans [i ] = if i == n - 1 || pre_max [i ] <= suf_min {
226+ pre_max [i ]
227+ } else {
228+ ans [i + 1 ]
229+ };
230+ suf_min = suf_min . min (nums [i ]);
231+ }
232+
233+ ans
234+ }
235+ }
236+ ```
237+
209238<!-- tabs: end -->
210239
211240<!-- solution: end -->
Original file line number Diff line number Diff line change 1+ impl Solution {
2+ pub fn max_value ( nums : Vec < i32 > ) -> Vec < i32 > {
3+ let n = nums. len ( ) ;
4+ let mut ans = vec ! [ 0 ; n] ;
5+ let mut pre_max = vec ! [ nums[ 0 ] ; n] ;
6+
7+ for i in 1 ..n {
8+ pre_max[ i] = pre_max[ i - 1 ] . max ( nums[ i] ) ;
9+ }
10+
11+ let mut suf_min = i32:: MAX ;
12+
13+ for i in ( 0 ..n) . rev ( ) {
14+ ans[ i] = if i == n - 1 || pre_max[ i] <= suf_min {
15+ pre_max[ i]
16+ } else {
17+ ans[ i + 1 ]
18+ } ;
19+ suf_min = suf_min. min ( nums[ i] ) ;
20+ }
21+
22+ ans
23+ }
24+ }
You can’t perform that action at this time.
0 commit comments