leetcode_Valid Perfect Square
来源:互联网 发布:淘宝搜索宝贝显示广告 编辑:程序博客网 时间:2024/05/28 18:43
[题目]
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: 16
Returns: True
Example 2:
Input: 14
Returns: False
【解法】
二分查找,从1 – num/2,因为除了1和4,一个数的开平方肯定小于这个数的一半,过程中注意溢出,因为两个比较大的int型相乘,可能溢出,因此程序中使用了long long类型。
【代码】
#include<iostream>#include<math.h>using namespace std;bool isPerfectSquare(int num1){ long long num = (long long) num1; if(num == 0 || num == 1 || num == 4) return true; int temp = num/2+1; int left = 1; int right = temp; while(left <= right) { //打印过程 //cout<<"("<<left<<","<<right<<")"<<endl; //long long防止溢出 long long mid = left + (right - left) / 2; if(mid * mid == num) return true; else if(mid * mid < num) left = mid + 1; else right = mid - 1; } return false;}int main(void){ for(int i = 1;i <= 1024;i++) { if(isPerfectSquare(i)) cout<<isPerfectSquare(i)<<endl; } system("pause"); return 0;}
1 0
- leetcode_Valid Perfect Square
- A Square Perfect Square
- leetcode perfect square --- 重点
- 141.Valid Perfect Square
- 367. Valid Perfect Square
- LeetCode:Valid Perfect Square
- 【Leetcode】valid perfect square
- [leetcode] Valid Perfect Square
- 367. Valid Perfect Square
- leetcode367. Valid Perfect Square
- 367. Valid Perfect Square
- 367. Valid Perfect Square
- 367. Valid Perfect Square
- Valid Perfect Square
- leetcode---Valid Perfect Square
- 367. Valid Perfect Square
- Valid Perfect Square
- Valid Perfect Square
- mysql中文乱码终结解决
- java null和""的区别
- Golang-web网站入门-服务器入门
- cmd 重启adb和adb端口被占用的解决方法
- RequireJs
- leetcode_Valid Perfect Square
- 14.10.4 Defragmenting a Table 整理表
- java实习面试经历
- 第二章 端到端的传输协议
- Unsupported format, or corrupt file: Expected BOF record; found b'\x04user '错误
- Unity3D 使用Mecanim实现连击
- ReactiveCocoa基础one
- mysql编码设置
- XML Schema语法