367.有效的完全平方数

68 阅读1分钟

题目:
给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。

进阶:不要 使用任何内置的库函数,如  sqrt 。
算法:

func isPerfectSquare(num int) bool {
	preRes, res := 1, 1
	for i := 1; i < math.MaxInt32; i++ {
		res = i * i
		if res == num {
			return true
		// 考虑溢出
		} else if res > num || res < preRes {
			break
		}
		preRes = res
	}
	return false
}