forked from doocs/leetcode
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSolution.rs
34 lines (33 loc) · 977 Bytes
/
Solution.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
impl Solution {
pub fn missing_rolls(rolls: Vec<i32>, mean: i32, n: i32) -> Vec<i32> {
let n = n as usize;
let mean = mean as usize;
let len = rolls.len() + n;
let sum: i32 = rolls.iter().sum();
let sum = sum as usize;
let max = n * 6;
let min = n;
if (sum + max) < mean * len || (sum + min) > mean * len {
return vec![];
}
let mut res = vec![0; n];
for i in min..=max {
if (sum + i) / len == mean {
let num = i / n;
res.fill(num as i32);
let mut count = i - n * num;
let mut j = 0;
while count != 0 {
if res[j] == 6 {
j += 1;
} else {
res[j] += 1;
count -= 1;
}
}
break;
}
}
res
}
}