diff options
Diffstat (limited to 'other/remove_stones.rs')
-rw-r--r-- | other/remove_stones.rs | 26 |
1 files changed, 0 insertions, 26 deletions
diff --git a/other/remove_stones.rs b/other/remove_stones.rs deleted file mode 100644 index e55eade..0000000 --- a/other/remove_stones.rs +++ /dev/null @@ -1,26 +0,0 @@ -use std::collections::BinaryHeap; -struct Solution; - -impl Solution { - pub fn min_stone_sum(piles: Vec<i32>, mut k: i32) -> i32 { - let mut max_heap = BinaryHeap::<i32>::new(); - for i in piles { - max_heap.push(i); - } - while k > 0 { - if let Some(top) = max_heap.pop() { - let removed = top - top / 2; - max_heap.push(removed); - } - k -= 1; - } - max_heap.iter().sum() - } -} - -fn main() { - let piles1 = vec![5,4,9]; - let piles2 = vec![4,3,6,7]; - println!("{}", Solution::min_stone_sum(piles1, 2)); //expect: 12 - println!("{}", Solution::min_stone_sum(piles2, 3)); //expect: 12 -} |