继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

慕慕7135311
关注TA
已关注
手记 51
粉丝 1
获赞 11

https://img1.sycdn.imooc.com/9c1cb068085caad609430678.jpg

一、问题理解

我们需要找出数组中所有"特殊元素"并计算它们的平方和。特殊元素是指其下标(从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时

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


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP