File tree Expand file tree Collapse file tree 4 files changed +209
-0
lines changed
solution/2000-2099/2028.Find Missing Observations Expand file tree Collapse file tree 4 files changed +209
-0
lines changed Original file line number Diff line number Diff line change 82
82
83
83
```
84
84
85
+ ### ** TypeScript**
86
+
87
+ ``` ts
88
+ function missingRolls(rolls : number [], mean : number , n : number ): number [] {
89
+ const len = rolls .length + n ;
90
+ const sum = rolls .reduce ((p , v ) => p + v );
91
+ const max = n * 6 ;
92
+ const min = n ;
93
+ if ((sum + max ) / len < mean || (sum + min ) / len > mean ) {
94
+ return [];
95
+ }
96
+
97
+ const res = new Array (n );
98
+ for (let i = min ; i <= max ; i ++ ) {
99
+ if ((sum + i ) / len === mean ) {
100
+ const num = Math .floor (i / n );
101
+ res .fill (num );
102
+ let count = i - n * num ;
103
+ let j = 0 ;
104
+ while (count != 0 ) {
105
+ if (res [j ] === 6 ) {
106
+ j ++ ;
107
+ } else {
108
+ res [j ]++ ;
109
+ count -- ;
110
+ }
111
+ }
112
+ break ;
113
+ }
114
+ }
115
+ return res ;
116
+ }
117
+ ```
118
+
119
+ ### ** Rust**
120
+
121
+ ``` rust
122
+ impl Solution {
123
+ pub fn missing_rolls (rolls : Vec <i32 >, mean : i32 , n : i32 ) -> Vec <i32 > {
124
+ let n = n as usize ;
125
+ let mean = mean as usize ;
126
+ let len = rolls . len () + n ;
127
+ let sum : i32 = rolls . iter (). sum ();
128
+ let sum = sum as usize ;
129
+ let max = n * 6 ;
130
+ let min = n ;
131
+ if (sum + max ) < mean * len || (sum + min ) > mean * len {
132
+ return vec! [];
133
+ }
134
+
135
+ let mut res = vec! [0 ; n ];
136
+ for i in min ..= max {
137
+ if (sum + i ) / len == mean {
138
+ let num = i / n ;
139
+ res . fill (num as i32 );
140
+ let mut count = i - n * num ;
141
+ let mut j = 0 ;
142
+ while count != 0 {
143
+ if res [j ] == 6 {
144
+ j += 1 ;
145
+ } else {
146
+ res [j ] += 1 ;
147
+ count -= 1 ;
148
+ }
149
+ }
150
+ break ;
151
+ }
152
+ }
153
+ res
154
+ }
155
+ }
156
+ ```
157
+
85
158
### ** ...**
86
159
87
160
```
Original file line number Diff line number Diff line change 64
64
65
65
```
66
66
67
+ ### ** TypeScript**
68
+
69
+ ``` ts
70
+ function missingRolls(rolls : number [], mean : number , n : number ): number [] {
71
+ const len = rolls .length + n ;
72
+ const sum = rolls .reduce ((p , v ) => p + v );
73
+ const max = n * 6 ;
74
+ const min = n ;
75
+ if ((sum + max ) / len < mean || (sum + min ) / len > mean ) {
76
+ return [];
77
+ }
78
+
79
+ const res = new Array (n );
80
+ for (let i = min ; i <= max ; i ++ ) {
81
+ if ((sum + i ) / len === mean ) {
82
+ const num = Math .floor (i / n );
83
+ res .fill (num );
84
+ let count = i - n * num ;
85
+ let j = 0 ;
86
+ while (count != 0 ) {
87
+ if (res [j ] === 6 ) {
88
+ j ++ ;
89
+ } else {
90
+ res [j ]++ ;
91
+ count -- ;
92
+ }
93
+ }
94
+ break ;
95
+ }
96
+ }
97
+ return res ;
98
+ }
99
+ ```
100
+
101
+ ### ** Rust**
102
+
103
+ ``` rust
104
+ impl Solution {
105
+ pub fn missing_rolls (rolls : Vec <i32 >, mean : i32 , n : i32 ) -> Vec <i32 > {
106
+ let n = n as usize ;
107
+ let mean = mean as usize ;
108
+ let len = rolls . len () + n ;
109
+ let sum : i32 = rolls . iter (). sum ();
110
+ let sum = sum as usize ;
111
+ let max = n * 6 ;
112
+ let min = n ;
113
+ if (sum + max ) < mean * len || (sum + min ) > mean * len {
114
+ return vec! [];
115
+ }
116
+
117
+ let mut res = vec! [0 ; n ];
118
+ for i in min ..= max {
119
+ if (sum + i ) / len == mean {
120
+ let num = i / n ;
121
+ res . fill (num as i32 );
122
+ let mut count = i - n * num ;
123
+ let mut j = 0 ;
124
+ while count != 0 {
125
+ if res [j ] == 6 {
126
+ j += 1 ;
127
+ } else {
128
+ res [j ] += 1 ;
129
+ count -= 1 ;
130
+ }
131
+ }
132
+ break ;
133
+ }
134
+ }
135
+ res
136
+ }
137
+ }
138
+ ```
139
+
67
140
### ** ...**
68
141
69
142
```
Original file line number Diff line number Diff line change
1
+ impl Solution {
2
+ pub fn missing_rolls ( rolls : Vec < i32 > , mean : i32 , n : i32 ) -> Vec < i32 > {
3
+ let n = n as usize ;
4
+ let mean = mean as usize ;
5
+ let len = rolls. len ( ) + n;
6
+ let sum: i32 = rolls. iter ( ) . sum ( ) ;
7
+ let sum = sum as usize ;
8
+ let max = n * 6 ;
9
+ let min = n;
10
+ if ( sum + max) < mean * len || ( sum + min) > mean * len {
11
+ return vec ! [ ] ;
12
+ }
13
+
14
+ let mut res = vec ! [ 0 ; n] ;
15
+ for i in min..=max {
16
+ if ( sum + i) / len == mean {
17
+ let num = i / n;
18
+ res. fill ( num as i32 ) ;
19
+ let mut count = i - n * num;
20
+ let mut j = 0 ;
21
+ while count != 0 {
22
+ if res[ j] == 6 {
23
+ j += 1 ;
24
+ } else {
25
+ res[ j] += 1 ;
26
+ count -= 1 ;
27
+ }
28
+ }
29
+ break ;
30
+ }
31
+ }
32
+ res
33
+ }
34
+ }
Original file line number Diff line number Diff line change
1
+ function missingRolls ( rolls : number [ ] , mean : number , n : number ) : number [ ] {
2
+ const len = rolls . length + n ;
3
+ const sum = rolls . reduce ( ( p , v ) => p + v ) ;
4
+ const max = n * 6 ;
5
+ const min = n ;
6
+ if ( ( sum + max ) / len < mean || ( sum + min ) / len > mean ) {
7
+ return [ ] ;
8
+ }
9
+
10
+ const res = new Array ( n ) ;
11
+ for ( let i = min ; i <= max ; i ++ ) {
12
+ if ( ( sum + i ) / len === mean ) {
13
+ const num = Math . floor ( i / n ) ;
14
+ res . fill ( num ) ;
15
+ let count = i - n * num ;
16
+ let j = 0 ;
17
+ while ( count != 0 ) {
18
+ if ( res [ j ] === 6 ) {
19
+ j ++ ;
20
+ } else {
21
+ res [ j ] ++ ;
22
+ count -- ;
23
+ }
24
+ }
25
+ break ;
26
+ }
27
+ }
28
+ return res ;
29
+ }
You can’t perform that action at this time.
0 commit comments