Equal Sum Arrays With Minimum Number of Operations LeetCode solution in Rust
1use std::collections::BinaryHeap;23impl Solution {4pub fn min_operations(nums1: Vec<i32>, nums2: Vec<i32>) -> i32 {5let a: i32 = nums1.iter().map(|&x| x as i32).sum();6let b = nums2.iter().map(|&x| x as i32).sum();7if (a < b) {8return Self::min_operations(nums2, nums1);9}1011let mut pq = BinaryHeap::new();12let mut amt = a - b;1314for n in nums1 {15if n > 1 {16pq.push(n - 1);17}18}1920for n in nums2 {21if n < 6 {22pq.push(6 - n);23}24}2526let mut ret = 0;27while amt > 0 && pq.is_empty() == false {28amt -= pq.pop().unwrap();29ret += 1;30}3132if amt > 0 {33return -1;34}35ret36}37}