博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 633. 平方数之和
阅读量:5350 次
发布时间:2019-06-15

本文共 769 字,大约阅读时间需要 2 分钟。

题目:

  给定一个非负整数 c ,你要判断是否存在两个整数 ab,使得 a2 + b2 = c。

     示例1:

输入: 5

输出: True

解释: 1 * 1 + 2 * 2 = 5

  示例2:

输入: 3

输出: False

思路:

  利用双指针思想,左指针置0,右指针置目标值平方根向下取整。两指针平方和比较:

  • 小于目标值,右指针左移;
  • 大于目标值,左指针右移;
  • 等于目标值,判断结束

  若循环结束未找到平方和与目标值相同的情况,则不存在。 

代码:

public class P633 {    public boolean judgeSquareSum(int c) {        if (c < 0) {            return false;        }        int left = 0;        int right = (int) Math.sqrt(c);        int curSum;        while (left < right) {            curSum = left * left + right * right;            if (curSum > c) {                right--;            } else if (curSum < c) {                left++;            } else {                return true;            }        }        return false;    }}

 

转载于:https://www.cnblogs.com/xiaoxt/p/10646804.html

你可能感兴趣的文章
selenium-窗口切换
查看>>
使用vue的v-model自定义 checkbox组件
查看>>
[工具] Sublime Text 使用指南
查看>>
Web服务器的原理
查看>>
常用的107条Javascript
查看>>
#10015 灯泡(无向图连通性+二分)
查看>>
mysql统计一张表中条目个数的方法
查看>>
ArcGIS多面体(multipatch)解析——引
查看>>
css3渐变画斜线 demo
查看>>
JS性能DOM优化
查看>>
HAL层三类函数及其作用
查看>>
Odoo 去掉 恼人的 "上午"和"下午"
查看>>
web@h,c小总结
查看>>
java编程思想笔记(一)——面向对象导论
查看>>
Data Structure 基本概念
查看>>
Ubuntu改坏sudoers后无法使用sudo的解决办法
查看>>
NEYC 2017 游记
查看>>
[搬运] 写给 C# 开发人员的函数式编程
查看>>
Python之旅Day14 JQuery部分
查看>>
core--线程池
查看>>