LeetCode-367. Valid Perfect Square (Java)
来源:互联网 发布:linux cgroups 编辑:程序博客网 时间:2024/06/05 20:41
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: False------------------------------------------------------------------------------------------------------------------------------
题意
在不适用库函数的情况下,判断一个数是否为某个数的平方。
思路
最简单的思路就是利用循环,当i的值大于num值的一半时结束循环,然后判断i*i是否等于num。
这样虽然可以实现需求,但是耗时比较长,需要更进一步的程序优化。
代码
public static boolean isPerfectSquare(int num){long left = 1; long right = num / 2; while (left + 1 < right) { long mid = left + (right - left) / 2; if (mid * mid > num) { right = mid; } else if (mid * mid == num) { return true; } else { left = mid; } } if (left * left == num) { return true; } if (right * right == num) { return true; } return false; }
在num/2的基础上,再进行了折半查找,执行循环的条件是left+1>right,如果改为left>right,则有可能进入死循环。
比如当num=4时,left=1,right=2,mid=1;此时,mid*mid=1,小于num,则执行left=mid,这样left还是1,又会进行同样的循环。
阅读全文
0 0
- leetcode-java-367. Valid Perfect Square
- LeetCode-367. Valid Perfect Square (Java)
- LeetCode 367. Valid Perfect Square
- Leetcode 367. Valid Perfect Square
- [leetcode] 367. Valid Perfect Square
- [leetcode]367. Valid Perfect Square
- LeetCode - 367. Valid Perfect Square
- leetcode 367. Valid Perfect Square
- leetcode.367. Valid Perfect Square
- leetcode 367. Valid Perfect Square
- [leetcode] 367. Valid Perfect Square
- LeetCode 367. Valid Perfect Square
- Leetcode 367. Valid Perfect Square
- 【LeetCode】 367. Valid Perfect Square
- [LeetCode]367. Valid Perfect Square
- LeetCode 367. Valid Perfect Square
- LeetCode-367. Valid Perfect Square
- 【Leetcode】367. Valid Perfect Square
- 算法竞赛入门经典 第一章的练习题
- MySql 配置URL参数说明
- 一个监听home键锁屏键的工具类
- tomcat集群共享session(nginx+redis)
- hdu 1251 统计难题 (trie树)
- LeetCode-367. Valid Perfect Square (Java)
- 使用QUdpSocket时编译出错的问题
- SDN控制器之OVN实验五:配置OVN网络安全功能(ACL)
- 二分法程序实现
- 自定义View-自动换行的标签控件
- 第7节-Linux账户与文件目录权限
- 特征工程知识笔记
- WatchDog工作原理
- UVA10562UnderdrawTheTrees