0
点赞
收藏
分享

微信扫一扫

TypeScript实现贪吃蛇游戏

janedaring 2023-06-05 阅读 83

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

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

示例 1:

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

示例 2:

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

提示:

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

解法 遍历

能被 3 3 3 2 2 2 整除的数,就是能被最小公倍数 LCM ( 2 , 3 ) = 6 \text{LCM}(2, 3)=6 LCM(2,3)=6 整除的数。遍历 nums \textit{nums} nums ,统计 6 6 6 的倍数的和 sum \textit{sum} sum ,以及 6 6 6 的倍数的个数 cnt \textit{cnt} cnt 。答案就是 ⌊ sum cnt ⌋ \left\lfloor\dfrac{\textit{sum}}{\textit{cnt}}\right\rfloor cntsum 。如果 c n t = 0 cnt=0 cnt=0 ,返回 0 0 0

class Solution {
    public int averageValue(int[] nums) {
        int sum = 0, cnt = 0;
        for (int x : nums) {
            if (x % 6 == 0) {
                sum += x;
                cnt++;
            }
        }
        return cnt > 0 ? sum / cnt : 0;
    }
}

复杂度分析:

  • 时间复杂度: O ( n ) O(n) O(n) ,其中 n n n n u m s nums nums 的长度
  • 空间复杂度: O ( 1 ) O(1) O(1) ,仅用到若干额外变量。
举报

相关推荐

0 条评论