可被三整除的偶数的平均值
难度:
标签:
题目描述
代码结果
运行时间: 27 ms, 内存: 16.1 MB
/*
* 思路:
* 1. 使用 Java Stream 过滤出可以被 3 整除的偶数。
* 2. 如果找不到满足条件的数,返回 0。
* 3. 计算这些数的平均值,并向下取整。
*/
import java.util.Arrays;
public class Solution {
public int averageOfEvenNumbersDivisibleByThree(int[] nums) {
return (int) Math.floor(Arrays.stream(nums)
.filter(num -> num % 3 == 0 && num % 2 == 0)
.average()
.orElse(0));
}
}
解释
方法:
该题解的思路是遍历整数数组nums,对于每个数字,检查它是否是偶数且能被3整除。如果是,那么将它加到divisible_sum中,并且增加计数器count的值。遍历完成后,如果count为0,说明没有找到符合条件的数字,返回0;否则,返回divisible_sum除以count的结果,使用整数除法以确保结果向下取整。
时间复杂度:
O(n)
空间复杂度:
O(1)
代码细节讲解
🦆
为什么在定义符合条件的偶数时,同时需要满足能被2整除和能被3整除,而不是只检查能被6整除?
▷🦆
在题解中,如果`nums`数组中所有数字都满足条件,`count`和`divisible_sum`会有什么特别的变化吗?
▷🦆
题解中提到如果`count`为0则返回0,这种情况下是否还需要检查`divisible_sum`的值?
▷🦆
算法使用整数除法来确保结果向下取整,那么在有浮点数结果的情况下,使用`//`与使用`int()`函数有何不同?
▷