File tree Expand file tree Collapse file tree 1 file changed +24
-1
lines changed Expand file tree Collapse file tree 1 file changed +24
-1
lines changed Original file line number Diff line number Diff line change @@ -3,7 +3,7 @@ fn main() {}
33struct Solution ;
44
55impl Solution {
6- pub fn lexical_order ( n : i32 ) -> Vec < i32 > {
6+ pub fn lexical_order1 ( n : i32 ) -> Vec < i32 > {
77 let mut s = ( 1 ..=n)
88 . into_iter ( )
99 . map ( |x| x. to_string ( ) )
@@ -13,4 +13,27 @@ impl Solution {
1313
1414 s. into_iter ( ) . map ( |x| x. parse :: < i32 > ( ) . unwrap ( ) ) . collect :: < Vec < i32 > > ( )
1515 }
16+
17+ pub fn lexical_order ( n : i32 ) -> Vec < i32 > {
18+ let mut v = Vec :: with_capacity ( n as usize ) ;
19+
20+ for i in 1 ..10 . min ( n + 1 ) {
21+ v. push ( i) ;
22+ Self :: dfs ( & mut v, i, n) ;
23+ }
24+ v
25+ }
26+
27+ fn dfs ( v : & mut Vec < i32 > , number : i32 , n : i32 ) {
28+ if number > n { return ; }
29+
30+ let number = number * 10 ;
31+
32+ for i in 0 ..10 {
33+ if number + i <= n {
34+ v. push ( number + i) ;
35+ Self :: dfs ( v, number + i, n) ;
36+ }
37+ }
38+ }
1639}
You can’t perform that action at this time.
0 commit comments