问题描述
LeetCode 100345. 使所有元素都可以被 3 整除的最少操作数 (opens in a new tab),难度简单。
给你一个整数数组 nums
。一次操作中,你可以将 nums
中的 任意 一个元素增加或者减少 1 。
请你返回将 nums
中所有元素都可以被 3 整除的 最少 操作次数。
示例 1
输入:nums = [1,2,3,4] 输出:3 解释: 通过以下 3 个操作,数组中的所有元素都可以被 3 整除: 将 1 减少 1 。 将 2 增加 1 。 将 4 减少 1 。
示例 2
输入:nums = [3,6,9] 输出:0
提示:
1 <= nums.length <= 50
1 <= nums[i] <= 50
题解
遍历
解题思路:根据题目,对元素进行一次增减满足被 3
整除。逆向思维,当前数只要对 3
取模,结果为 1
(元素减 1
) 或者 2
(元素增 1
)则满足条件。
Solution.java
class Solution {
public int minimumOperations(int[] nums) {
if (nums.length == 0) return 0;
int result = 0;
for (int num : nums) {
int mod = num % 3;
if (mod == 1 || mod == 2) result++;
}
return result;
}
}