Skip to content

Latest commit

 

History

History
43 lines (33 loc) · 720 Bytes

0367-有效的完全平方数.md

File metadata and controls

43 lines (33 loc) · 720 Bytes

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

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

 

示例 1:

输入:num = 16 输出:true 示例 2:

输入:num = 14 输出:false  

提示:

1 <= num <= 2^31 - 1

var isPerfectSquare = function(num) {
  if (num === 1) return true
  let left = 0
  let right = num >> 1
  while(left <= right) {
    const mid = left + ((right - left) >> 1)
    if (mid ** 2 === num) {
      return true
    }
    if (mid ** 2 < num) {
      left = mid + 1
    }
    if (mid ** 2 > num) {
      right = mid - 1
    }
  }
  return false
};

解题思路: 二分法