367. Valid Perfect Square
来源:互联网 发布:mongodb java条件查询 编辑:程序博客网 时间:2024/05/06 19:36
1.Question
Given a positive integer num, write a function which returns True if num is a perfect square else False.
Note: Do not use any built-in library function such as sqrt
.
Example 1:
Input: 16Returns: True
Example 2:
Input: 14Returns: False2.Code
class Solution {public: bool isPerfectSquare(int num) { int left = 1, right = num; while(left <= right) { long mid = left + 0.5*(right - left); //注意sq需要long型,则mid也需要long型 long sq = mid * mid; if(sq == num) return true; else if(sq > num) right = mid - 1; else left = mid + 1; } return false; }};
3.Note
a. 采用二分查找可以快速定位,二分查找分为几种情况。一种是只查找精确的某个值,可以使用 left<=right; right = mid-1; left = mid+1; 这种形式;一种是查找最大的最小值,可以使用 left<right; right = mid; left = mid+1; 这种形式。还有一些其他情况,具体情况具体分析。
b. 注意越界的问题,比如,sq需要保存long 型,则mid 也需要long 型。
0 0
- 367. Valid Perfect Square
- 367. Valid Perfect Square
- 367. Valid Perfect Square
- 367. Valid Perfect Square
- 367. Valid Perfect Square
- 367. Valid Perfect Square
- 367. Valid Perfect Square
- 367. Valid Perfect Square
- 367. Valid Perfect Square
- 367. Valid Perfect Square
- 367. Valid Perfect Square
- 367. Valid Perfect Square
- 367. Valid Perfect Square
- 367. Valid Perfect Square
- 367. Valid Perfect Square**
- 367. Valid Perfect Square
- 367. Valid Perfect Square
- 367. Valid Perfect Square
- 什么是程序死锁,如何预防
- iOS开发:仿新闻tab标题栏
- 基于C#和engine的shp文件去z值的主要代码
- 接口测试用例覆盖方法
- 理解OAuth 2.0
- 367. Valid Perfect Square
- 2016年11月问题记录与总结
- 趣味编程:有A,B,C,D,E五人,每人额头上都帖了一张黑或白的纸
- Javascript之数据类型
- 研究生考试总结
- 中国银行图谱中neo4j使用备份
- centos 修改主机名及显示全路径
- 免注册调用com组件类
- UOJ #35 后缀排序(后缀数组)