华为 OD 训练营 · 题解精讲
LC367. 有效的完全平方数
题目描述
给定一个正整数 num,判断它是否为完全平方数。要求不使用内置 sqrt 函数。例如输入 16,输出 true;输入 14,输出 false。
思路解析
1. 核心思路:使用二分查找,在 [1, num] 区间内寻找平方等于 num 的整数。 2. 关键点:二分查找的边界更新,注意 mid*mid 可能溢出,使用 long 或 mid <= num/mid 避免溢出。 3. 易错点:num=1 时直接返回 true;循环条件 left <= right。 4. 时间复杂度 O(log n),空间复杂度 O(1)。