Welcome to Subscribe On Youtube
2455. Average Value of Even Numbers That Are Divisible by Three
Description
Given an integer array nums
of positive integers, return the average value of all even integers that are divisible by 3
.
Note that the average of n
elements is the sum of the n
elements divided by n
and rounded down to the nearest integer.
Example 1:
Input: nums = [1,3,6,10,12,15] Output: 9 Explanation: 6 and 12 are even numbers that are divisible by 3. (6 + 12) / 2 = 9.
Example 2:
Input: nums = [1,2,4,7,10] Output: 0 Explanation: There is no single number that satisfies the requirement, so return 0.
Constraints:
1 <= nums.length <= 1000
1 <= nums[i] <= 1000
Solutions
Solution 1: Simulation
We notice that an even number divisible by $3$ must be a multiple of $6$. Therefore, we only need to traverse the array, count the sum and the number of all multiples of $6$, and then calculate the average.
The time complexity is $O(n)$, where $n$ is the length of the array. The space complexity is $O(1)$.
-
class Solution { public int averageValue(int[] nums) { int s = 0, n = 0; for (int x : nums) { if (x % 6 == 0) { s += x; ++n; } } return n == 0 ? 0 : s / n; } }
-
class Solution { public: int averageValue(vector<int>& nums) { int s = 0, n = 0; for (int x : nums) { if (x % 6 == 0) { s += x; ++n; } } return n == 0 ? 0 : s / n; } };
-
class Solution: def averageValue(self, nums: List[int]) -> int: s = n = 0 for x in nums: if x % 6 == 0: s += x n += 1 return 0 if n == 0 else s // n
-
func averageValue(nums []int) int { var s, n int for _, x := range nums { if x%6 == 0 { s += x n++ } } if n == 0 { return 0 } return s / n }
-
function averageValue(nums: number[]): number { let s = 0; let n = 0; for (const x of nums) { if (x % 6 === 0) { s += x; ++n; } } return n === 0 ? 0 : ~~(s / n); }
-
impl Solution { pub fn average_value(nums: Vec<i32>) -> i32 { let mut s = 0; let mut n = 0; for x in nums.iter() { if x % 6 == 0 { s += x; n += 1; } } if n == 0 { return 0; } s / n } }