为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
C++

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题解:巧用取模运算筛选特殊元素


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消