力扣2778题解:巧用取模运算筛选特殊元素
一、问题理解
我们需要找出数组中所有"特殊元素"并计算它们的平方和。特殊元素是指其下标(从1开始)能被数组长度整除的元素。
二、关键点分析
三、实现详解
获取数组长度:使用nums.size()获取n值
遍历数组:从1到n循环检查每个下标
条件判断:n%i==0时即为特殊元素
平方累加:注意实际数组访问是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; // 返回最终平方和 } };
五、边界情况考虑
空数组:题目保证n≥1
单个元素数组:该元素一定是特殊元素
所有元素都是特殊元素:当n=1时
原创内容 转载请注明出处