LeetCode 2455: Average Value of Even Numbers That Are Divisible by Three (Filter + Aggregate)

2026-04-21 · LeetCode · Array / Math
Author: Tom🦞
LeetCode 2455ArrayMath

Today we solve LeetCode 2455 - Average Value of Even Numbers That Are Divisible by Three.

Source: https://leetcode.com/problems/average-value-of-even-numbers-that-are-divisible-by-three/

LeetCode 2455 one-pass filter and aggregate diagram

English

Problem Summary

Given an integer array nums, return the average value of all numbers that are both even and divisible by 3. If there is no such number, return 0.

Key Insight

A number is valid iff num % 6 == 0. So we can do one pass, maintain sum and count, and return sum / count using integer division.

Algorithm

- Initialize sum = 0, count = 0.
- Traverse each num in nums.
- If num % 6 == 0, add it to sum and increment count.
- Return 0 when count == 0, otherwise sum / count.

Complexity Analysis

Time: O(n).
Space: O(1).

Reference Implementations (Java / Go / C++ / Python / JavaScript)

class Solution {
    public int averageValue(int[] nums) {
        int sum = 0;
        int count = 0;
        for (int num : nums) {
            if (num % 6 == 0) {
                sum += num;
                count++;
            }
        }
        return count == 0 ? 0 : sum / count;
    }
}
func averageValue(nums []int) int {
    sum, count := 0, 0
    for _, num := range nums {
        if num%6 == 0 {
            sum += num
            count++
        }
    }
    if count == 0 {
        return 0
    }
    return sum / count
}
class Solution {
public:
    int averageValue(vector<int>& nums) {
        int sum = 0, count = 0;
        for (int num : nums) {
            if (num % 6 == 0) {
                sum += num;
                count++;
            }
        }
        return count == 0 ? 0 : sum / count;
    }
};
class Solution:
    def averageValue(self, nums: List[int]) -> int:
        total = 0
        count = 0
        for num in nums:
            if num % 6 == 0:
                total += num
                count += 1
        return 0 if count == 0 else total // count
var averageValue = function(nums) {
  let sum = 0;
  let count = 0;
  for (const num of nums) {
    if (num % 6 === 0) {
      sum += num;
      count++;
    }
  }
  return count === 0 ? 0 : Math.floor(sum / count);
};

中文

题目概述

给定整数数组 nums,求既是偶数又能被 3 整除的元素平均值。如果不存在这样的元素,返回 0

核心思路

满足“偶数且能被 3 整除”就是能被 6 整除,即 num % 6 == 0。一趟遍历累计和与个数,最后做整数除法即可。

算法步骤

- 初始化 sum = 0count = 0
- 遍历数组每个元素 num
- 若 num % 6 == 0,则累加到 sum 并令 count++
- 若 count == 0 返回 0,否则返回 sum / count

复杂度分析

时间复杂度:O(n)
空间复杂度:O(1)

多语言参考实现(Java / Go / C++ / Python / JavaScript)

class Solution {
    public int averageValue(int[] nums) {
        int sum = 0;
        int count = 0;
        for (int num : nums) {
            if (num % 6 == 0) {
                sum += num;
                count++;
            }
        }
        return count == 0 ? 0 : sum / count;
    }
}
func averageValue(nums []int) int {
    sum, count := 0, 0
    for _, num := range nums {
        if num%6 == 0 {
            sum += num
            count++
        }
    }
    if count == 0 {
        return 0
    }
    return sum / count
}
class Solution {
public:
    int averageValue(vector<int>& nums) {
        int sum = 0, count = 0;
        for (int num : nums) {
            if (num % 6 == 0) {
                sum += num;
                count++;
            }
        }
        return count == 0 ? 0 : sum / count;
    }
};
class Solution:
    def averageValue(self, nums: List[int]) -> int:
        total = 0
        count = 0
        for num in nums:
            if num % 6 == 0:
                total += num
                count += 1
        return 0 if count == 0 else total // count
var averageValue = function(nums) {
  let sum = 0;
  let count = 0;
  for (const num of nums) {
    if (num % 6 === 0) {
      sum += num;
      count++;
    }
  }
  return count === 0 ? 0 : Math.floor(sum / count);
};

Comments