【双指针】【数之和】 LeetCode 633.平方数之和

算法思想:

  • 双指针枚举i,j;类似三数之和
cpp 复制代码
class Solution {
public:
    bool judgeSquareSum(int c) {
        long long  sum=0;
        vector<int> dp;dp.push_back(0);
        long long start=1;
        while(sum < c)
        {
            sum = start *start;
            if(sum>c) break;
            else dp.push_back(sum);
            start++;

        }
        long long l=0,r=dp.size()-1;
        while(l<=r)
        {
            //long long tmp =dp[l] + dp[r]; 会溢出
            if(dp[l] < c-dp[r])
            {
                l++;
                continue;
            }
            else if (dp[l] > c - dp[r])
            {
                r--;
                continue;
            }
            else if(dp[l] == c-dp[r]) return true;
        }
        return false;

    }
};

但注意一点,dp[l] + dp[r]会溢出,所以用减法不会溢出;

相关推荐
心中有国也有家30 分钟前
cann-recipes-infer:昇腾 NPU 推理的“菜谱集合”
经验分享·笔记·学习·算法
绝知此事40 分钟前
【算法突围 01】线性结构与哈希表:后端开发的收纳术
java·数据结构·算法·面试·jdk·散列表
碧海银沙音频科技研究院1 小时前
通话AEC与语音识别AEC的软硬回采链路
深度学习·算法·语音识别
csdn_aspnet2 小时前
Python 算法快闪 LeetCode 编号 70 - 爬楼梯
python·算法·leetcode·职场和发展
m0_629494734 小时前
LeetCode 热题 100-----26.环形链表 II
数据结构·算法·leetcode·链表
壹号用户4 小时前
用队列实现栈
数据结构·算法
做人求其滴5 小时前
面试经典 150 题 380 274
c++·算法·面试·职场和发展·力扣
daad7775 小时前
记一组无人机IMU传感器数据
算法
计算机安禾5 小时前
【c++面向对象编程】第42篇:模板特化与偏特化:为特定类型定制实现
开发语言·c++·算法