返回介绍

solution / 2700-2799 / 2778.Sum of Squares of Special Elements / README

发布于 2024-06-17 01:03:00 字数 2954 浏览 0 评论 0 收藏 0

2778. 特殊元素平方和

English Version

题目描述

给你一个下标从 1 开始、长度为 n 的整数数组 nums

nums 中的元素 nums[i] 而言,如果 n 能够被 i 整除,即 n % i == 0 ,则认为 num[i] 是一个 特殊元素

返回 nums 中所有 特殊元素平方和

 

示例 1:

输入:nums = [1,2,3,4]
输出:21
解释:nums 中共有 3 个特殊元素:nums[1],因为 4 被 1 整除;nums[2],因为 4 被 2 整除;以及 nums[4],因为 4 被 4 整除。 
因此,nums 中所有特殊元素的平方和等于 nums[1] * nums[1] + nums[2] * nums[2] + nums[4] * nums[4] = 1 * 1 + 2 * 2 + 4 * 4 = 21 。  

示例 2:

输入:nums = [2,7,1,19,18,3]
输出:63
解释:nums 中共有 4 个特殊元素:nums[1],因为 6 被 1 整除;nums[2] ,因为 6 被 2 整除;nums[3],因为 6 被 3 整除;以及 nums[6],因为 6 被 6 整除。 
因此,nums 中所有特殊元素的平方和等于 nums[1] * nums[1] + nums[2] * nums[2] + nums[3] * nums[3] + nums[6] * nums[6] = 2 * 2 + 7 * 7 + 1 * 1 + 3 * 3 = 63 。 

 

提示:

  • 1 <= nums.length == n <= 50
  • 1 <= nums[i] <= 50

解法

方法一:枚举

我们可以枚举数组中的每个元素,判断其是否为特殊元素,如果是则将其平方加入答案中。

时间复杂度 $O(n)$,其中 $n$ 是数组的长度。空间复杂度 $O(1)$。

class Solution:
  def sumOfSquares(self, nums: List[int]) -> int:
    n = len(nums)
    return sum(x * x for i, x in enumerate(nums, 1) if n % i == 0)
class Solution {
  public int sumOfSquares(int[] nums) {
    int n = nums.length;
    int ans = 0;
    for (int i = 1; i <= n; ++i) {
      if (n % i == 0) {
        ans += nums[i - 1] * nums[i - 1];
      }
    }
    return ans;
  }
}
class Solution {
public:
  int sumOfSquares(vector<int>& nums) {
    int n = nums.size();
    int ans = 0;
    for (int i = 1; i <= n; ++i) {
      if (n % i == 0) {
        ans += nums[i - 1] * nums[i - 1];
      }
    }
    return ans;
  }
};
func sumOfSquares(nums []int) (ans int) {
  n := len(nums)
  for i, x := range nums {
    if n%(i+1) == 0 {
      ans += x * x
    }
  }
  return
}
function sumOfSquares(nums: number[]): number {
  const n = nums.length;
  let ans = 0;
  for (let i = 0; i < n; ++i) {
    if (n % (i + 1) === 0) {
      ans += nums[i] * nums[i];
    }
  }
  return ans;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文