leetcode367: Valid Perfect Square
来源:互联网 发布:第一次穿情趣内衣 知乎 编辑:程序博客网 时间:2024/05/12 11:11
要求:
后来发现并不是每个数字都要查找。观察平方数,可知平方数都是奇数列的部分和。只要判断num否是奇数之和就可以了
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注意:写了三个版本,运行速度由慢到快。
直接暴力查找,在0-num/2找一个数使得k^2=num
public boolean isPerfectSquare(int num) {if (num == 1)return true;for (int i = 0; i <= num / 2; i++) {if (i * i == num)return true;}return false;}
后来发现并不是每个数字都要查找。观察平方数,可知平方数都是奇数列的部分和。只要判断num否是奇数之和就可以了
例如:
1=1
4=1+3
9=1+3+5
......
public boolean isPerfectSquare(int num) {for (int i = 1; num > 0; i += 2)num -= i;if (num == 0)return true;elsereturn false;}最后一种方法是使用二分法查找,原理和第一种方法一样,只不过查找的过程快了很多
public boolean isPerfectSquare(int num) {long l = 1, h = num / 2;long x = num;if (x == 1 || x == 0)return true;while (l <= h) {long mid = l + (h - l) / 2;if (mid * mid > num)h = mid - 1;else if (mid * mid < num)l = mid + 1;elsereturn true;}return false;}
0 0
- leetcode367. Valid Perfect Square
- leetcode367: Valid 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
- 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
- 367. Valid Perfect Square
- 367. Valid Perfect Square
- Android自定义View的数独游戏
- 二维图形学的变换-平移、旋转、缩放 OpenGL
- 大华视频监控软件
- 建立自己的封装库(三)
- uva 11624 Fire!(bfs)
- leetcode367: Valid Perfect Square
- MySQL技术内幕 InnoDB存储引擎(二)
- ES6 Promise对象的学习笔记
- 第15周OJ-4
- 需求为纲 产品为王 极米担当行业领头羊的秘密
- Trafodion数据加载性能测试
- 单周期菜谱设计
- CMD启动mySQL提示“发生错误5。”解决办法
- 51nod-1422 沙拉酱前缀