2455-可被三整除的偶数的平均值

Raphael Liu Lv10

给你一个由正整数组成的整数数组 nums ,返回其中可被 3 整除的所有偶数的平均值。

注意:n 个元素的平均值等于 n 个元素 求和 再除以 n ,结果 向下取整 到最接近的整数。

示例 1:

**输入:** nums = [1,3,6,10,12,15]
**输出:** 9
**解释:** 6 和 12 是可以被 3 整除的偶数。(6 + 12) / 2 = 9 。

示例 2:

**输入:** nums = [1,2,4,7,10]
**输出:** 0
**解释:** 不存在满足题目要求的整数,所以返回 0 。

提示:

  • 1 <= nums.length <= 1000
  • 1 <= nums[i] <= 1000

方法一:遍历

思路与算法

题目给定正整数组成的整数数组 nums,返回其中可被 3 整除的所有偶数的平均值。被 3 整除的所有偶数,等价于 6 的倍数。

遍历 nums 中的每一个数,判断是否除以 6 没有余数,没有余数即是 6 的倍数,累加到总和中。

最后,返回求和后的平均数,k 个元素的平均值等于求和后除以 k,结果向下取整。如果不存在 6 的倍数,返回 0。

代码

[sol1-C++]
1
2
3
4
5
6
7
8
9
10
11
12
13
class Solution {
public:
int averageValue(vector<int>& nums) {
int total = 0, k = 0;
for (int a : nums) {
if (a % 6 == 0) {
total += a;
k++;
}
}
return k > 0 ? total / k : 0;
}
};
[sol1-Java]
1
2
3
4
5
6
7
8
9
10
11
12
class Solution {
public int averageValue(int[] nums) {
int total = 0, k = 0;
for (int a : nums) {
if (a % 6 == 0) {
total += a;
k++;
}
}
return k > 0 ? total / k : 0;
}
}
[sol1-Python3]
1
2
3
4
5
6
7
8
9
class Solution:
def averageValue(self, nums: List[int]) -> int:
total = 0
k = 0
for a in nums:
if a % 6 == 0:
total += a
k += 1
return total // k if k > 0 else 0
[sol1-Go]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
func averageValue(nums []int) int {
total := 0
k := 0
for _, a := range nums {
if a % 6 == 0 {
total += a
k++
}
}
if k > 0 {
return total / k
} else {
return 0
}
}
[sol1-JavaScript]
1
2
3
4
5
6
7
8
9
10
11
var averageValue = function(nums) {
let total = 0;
let k = 0;
for (let a of nums) {
if (a % 6 === 0) {
total += a;
k++;
}
}
return k > 0 ? Math.floor(total / k) : 0;
};
[sol1-C#]
1
2
3
4
5
6
7
8
9
10
11
12
13
public class Solution {
public int AverageValue(int[] nums) {
int total = 0, k = 0, n = nums.Length;
for (int i = 0; i < n; i++) {
int a = nums[i];
if (a % 6 == 0) {
total += a;
k++;
}
}
return k > 0 ? total / k : 0;
}
}
[sol1-C]
1
2
3
4
5
6
7
8
9
10
11
int averageValue(int* nums, int numsSize){
int total = 0, k = 0;
for (int i = 0; i < numsSize; i++) {
int a = nums[i];
if (a % 6 == 0) {
total += a;
k++;
}
}
return k > 0 ? total / k : 0;
}

复杂度分析

  • 时间复杂度:O(n),其中 n 是数组 nums 的长度。

  • 空间复杂度:O(1)。

 Comments
On this page
2455-可被三整除的偶数的平均值