LeetCode 633. 平方数之和(双指针法)

简介: LeetCode 633. 平方数之和(双指针法)

633. 平方数之和


双指针法

class Solution
{
public:
    bool judgeSquareSum(int c)
    {
        long left = 0, right = sqrt(c);
        while (left <= right)
        {
            long tmp = left * left + right * right;
            if (tmp == c)
            {
                return true;
            }
            else if (tmp > c)
            {
                right--;
            }
            else
            {
                left++;
            }
        }
        return false;
    }
};

就是左右指针优化。要注意数据类型要为 l o n g ,因为 a 2 + b 2 = c

,所以 c ≥ a & & b 所以可以优化右指针初始值

目录
相关文章
|
2月前
|
算法
LeetCode刷题---21.合并两个有序链表(双指针)
LeetCode刷题---21.合并两个有序链表(双指针)
|
2月前
|
算法
LeetCode刷题---19. 删除链表的倒数第 N 个结点(双指针-快慢指针)
LeetCode刷题---19. 删除链表的倒数第 N 个结点(双指针-快慢指针)
|
2月前
|
存储 算法
LeetCode刷题---209. 长度最小的子数组(双指针-滑动窗口)
LeetCode刷题---209. 长度最小的子数组(双指针-滑动窗口)
|
2月前
|
存储 容器
LeetCode刷题---11. 盛最多水的容器(双指针-对撞指针)
LeetCode刷题---11. 盛最多水的容器(双指针-对撞指针)
|
2月前
|
算法
LeetCode刷题---167. 两数之和 II - 输入有序数组(双指针-对撞指针)
LeetCode刷题---167. 两数之和 II - 输入有序数组(双指针-对撞指针)
|
4月前
|
算法 程序员 索引
【Leetcode 程序员面试金典 02.08】 —— 环路检测 |双指针
我们可以使用双指针解决本题,由数学推导可知:a 的距离为(环长度的倍数 - b),即 tmp 指针从头节点走到环开头节点等于 slow 指针走到环开头节点的距离
|
2月前
|
存储 算法
LeetCode刷题---75. 颜色分类(双指针,循环不变量)
LeetCode刷题---75. 颜色分类(双指针,循环不变量)
|
2月前
|
算法
LeetCode刷题---283. 移动零(双指针)
LeetCode刷题---283. 移动零(双指针)
|
4月前
|
索引 容器
leetcode双指针总结
leetcode双指针总结
21 0
|
2月前
|
存储 算法 索引
LeetCode刷题---链表经典问题(双指针)
LeetCode刷题---链表经典问题(双指针)

热门文章

最新文章