当前位置:首页 > 力扣题解 > 力扣2778题解:巧用取模运算筛选特殊元素

力扣2778题解:巧用取模运算筛选特殊元素

2周前 (06-22)力扣题解65

截图未命名.jpg 力扣2778题解:巧用取模运算筛选特殊元素 力扣2778 特殊元素 平方和 数组遍历 取模运算 第1张

一、问题理解

我们需要找出数组中所有"特殊元素"并计算它们的平方和。特殊元素是指其下标(从1开始)能被数组长度整除的元素。

二、关键点分析

  1. 数组下标处理‌:题目要求下标从1开始,但C++数组实际从0开始

  2. 整除条件判断‌:使用取模运算符%检查n%i==0

  3. 平方计算‌:对符合条件的元素计算平方值并累加

三、实现详解

  1. 获取数组长度‌:使用nums.size()获取n值

  2. 遍历数组‌:从1到n循环检查每个下标

  3. 条件判断‌:n%i==0时即为特殊元素

  4. 平方累加‌:注意实际数组访问是nums[i-1]

四、实现代码

class Solution {
public:
    int sumOfSquares(vector<int>& nums) {
        int n = nums.size();  // 获取数组长度
        int sum = 0;          // 初始化平方和为0
       
        // 遍历数组,注意题目要求下标从1开始
        for(int i = 1; i <= n; i++) {
            // 检查当前下标是否是特殊元素
            if(n % i == 0) {
                // 计算平方并累加(注意数组实际下标是i-1)
                sum += nums[i-1] * nums[i-1];
            }
        }
       
        return sum;  // 返回最终平方和
    }
};

五、边界情况考虑

  1. 空数组:题目保证n≥1

  2. 单个元素数组:该元素一定是特殊元素

  3. 所有元素都是特殊元素:当n=1时


原创内容 转载请注明出处

分享给朋友:

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。