2025-01-20:使所有元素都可以被3整除的最少操作数。用go语言

架构师课程 2025-01-20 21:10:39

2025-01-20:使所有元素都可以被 3 整除的最少操作数。用go语言,给定一个整数数组 nums,你可以通过对数组中任意一个元素进行加1或减1的操作。

在这些操作中,目标是使得数组内所有元素都能被3整除。请问你需要的最少操作次数是多少?

1 <= nums.length <= 50。

1 <= nums[i] <= 50。

输入:nums = [1,2,3,4]。

输出:3。

解释:

通过以下 3 个操作,数组中的所有元素都可以被 3 整除:

将 1 减少 1 。

将 2 增加 1 。

将 4 减少 1 。

答案2025-01-20:

chatgpt[1]

题目来自leetcode3190。

大体步骤如下:

1.遍历给定的整数数组 nums。

2.对于每个元素 x,检查它与3的余数是否为0。

3.如果 x 不能被3整除(即 x%3 != 0),则需要进行操作使其能够被3整除。

4.对于每个不满足条件的元素,计数器 ans 增加1。

5.返回最终操作次数 ans。

总的时间复杂度:

• 遍历整个数组的时间复杂度为 O(n),其中 n 是数组的长度。• 在每次遍历中执行常数时间的操作。• 因此,总的时间复杂度为 O(n)。

总的额外空间复杂度:

• 除了输入数组 nums 和一个整型变量 ans 外,并没有使用任何额外的空间。• 因此,总的额外空间复杂度为 O(1)。Go完整代码如下:package mainimport ( "fmt")func minimumOperations(nums []int) (ans int) { for _, x := range nums { if x%3 != 0 { ans++ } } return}func main() { nums := []int{1, 2, 3, 4} result := minimumOperations(nums) fmt.Println(result)}

在这里插入图片描述

Rust完整代码如下:fn minimum_operations(nums: &[i32]) -> i32 { let mut ans = 0; for &x in nums { if x % 3 != 0 { ans += 1; } } ans}fn main() { let nums = vec![1, 2, 3, 4]; let result = minimum_operations(&nums); println!("{}", result);}

在这里插入图片描述

C完整代码如下:#include <stdio.h>int minimumOperations(int nums[], int size) { int ans = 0; for (int i = 0; i < size; i++) { if (nums[i] % 3 != 0) { ans++; } } return ans;}int main() { int nums[] = {1, 2, 3, 4}; int size = sizeof(nums) / sizeof(nums[0]); int result = minimumOperations(nums, size); printf("%d\n", result); return 0;}

在这里插入图片描述

C++完整代码如下:#include <iostream>#include <vector>int minimumOperations(const std::vector<int>& nums) { int ans = 0; for (int x : nums) { if (x % 3 != 0) { ans++; } } return ans;}int main() { std::vector<int> nums = {1, 2, 3, 4}; int result = minimumOperations(nums); std::cout << result << std::endl; return 0;}

在这里插入图片描述

Python完整代码如下:# -*-coding:utf-8-*-def minimum_operations(nums): ans = 0 for x in nums: if x % 3 != 0: ans += 1 return ansif __name__ == "__main__": nums = [1, 2, 3, 4] result = minimum_operations(nums) print(result)

在这里插入图片描述

JavaScript完整代码如下:function minimumOperations(nums) { let ans = 0; for (let x of nums) { if (x % 3 !== 0) { ans++; } } return ans;}const nums = [1, 2, 3, 4];const result = minimumOperations(nums);console.log(result);

在这里插入图片描述

Solidity完整代码如下:// SPDX-License-Identifier: MITpragma solidity ^0.8.0;contract MinimumOperations { // 存储结果 uint public result; // 销毁合约前用于计算不为3的倍数数字的函数 function minimumOperations(uint[] memory nums) public returns (uint) { uint ans = 0; for (uint i = 0; i < nums.length; i++) { if (nums[i] % 3 != 0) { ans++; } } result = ans; // 存储结果的状态变量 return ans; // 返回计算结果 }}

在这里插入图片描述

引用链接

[1] chatgpt: https://chatbotsplace.com/?rc=nnNWSCJ7EP

1 阅读:9