leetcode
100345. 使所有元素都可以被 3 整除的最少操作数

问题描述

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;
    }
}