博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 633. Sum of Square Numbers
阅读量:5280 次
发布时间:2019-06-14

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

Given a non-negative integer c, your task is to decide whether there're two integers a and b such that a2 + b2 = c.

Example 1:

Input: 5Output: TrueExplanation: 1 * 1 + 2 * 2 = 5

 

Example 2:

Input: 3Output: False

 


题目标签:Math

  大家今天情人节快乐哈!祝贺单身狗们节日快乐! (美国时间还在 2/14)

  我给大家唱首歌:single dog, single dog, single all the way... 刷题吧!

 

  题目给了我们一个 c,让我们找到 a * a + b * b = c。

  这里可以利用 two pointers, left 和 right,left = 0, right =  Math.sqrt(c)。

  当 left 小于等于 right的情况下:sum = left * left + right * right

    如果 sum 大于 c 的话,说明 需要更小的,right--;

    如果 sum 小于 c 的话,说明 需要更大的,left++;

    如果 sum 等于 c,返回 true。

 

 

Java Solution:

Runtime beats 85.71% 

完成日期:02/14/2018

关键词:Math

关键点:利用 two pointers 从 0 到 Math.sqrt(c) 的范围

1 class Solution  2 { 3     public boolean judgeSquareSum(int c)  4     { 5         int left = 0; 6         int right = (int)Math.sqrt(c); 7          8         while(left <= right) 9         {10             int sum = left * left + right * right;11             12             if(sum == c)13                 return true;14             else if(sum < c)15                 left++;16             else17                 right--;18             19         }20         21         return false;22     }23 }

参考资料:n/a

LeetCode 题目列表 - 

题目来源:https://leetcode.com/

转载于:https://www.cnblogs.com/jimmycheng/p/8449220.html

你可能感兴趣的文章
JavaScript 变量
查看>>
java实用类
查看>>
smarty模板自定义变量
查看>>
研究称90%的癌症由非健康生活习惯导致
查看>>
命令行启动Win7系统操作部分功能
查看>>
排序sort (一)
查看>>
Parrot虚拟机
查看>>
Teamcenter10 step-by-step installation in Linux env-Oracle Server Patch
查看>>
Struts2学习(三)
查看>>
Callable和Runnable和FutureTask
查看>>
GitHub 多人协作开发 三种方式:
查看>>
文本域添加编辑器
查看>>
Yum安装MySQL以及相关目录路径和修改目录
查看>>
java获取hostIp和hostName
查看>>
关于web服务器和数据库的各种说法(搜集到的)
查看>>
C# Stream 和 byte[] 之间的转换
查看>>
OMG: daily scrum nine
查看>>
redis与spring结合错误情况
查看>>
第六章 字节码执行方式--解释执行和JIT
查看>>
字符串方法title()、istitle()
查看>>