3190 - Find Minimum Operations to Make All Elements Divisible by Three
problem
You are given an integer array nums. In one operation, you can add or subtract 1 from any element of nums.
Return the minimum number of operations to make all elements of nums divisible by 3.
Example 1:
Input: nums = [1,2,3,4]
Output: 3
Explanation:
All array elements can be made divisible by 3 using 3 operations:
- Subtract 1 from 1.
- Add 1 to 2.
- Subtract 1 from 4.
Example 2:
Input: nums = [3,6,9]
Output: 0
Constraints:
1 <= nums.length <= 501 <= nums[i] <= 50
submission
impl Solution {
pub fn minimum_operations(nums: Vec<i32>) -> i32 {
// we could also map(|n| (n % 3 != 0) as i32)
// we could also filter and count
// since every number need at most 1 operation
nums.into_iter()
.map(|n| (n % 3).min(3 - n % 3))
.sum()
}
}