1. 程式人生 > >LeetCode刷題記錄——第367題(有效的完全平方數)

LeetCode刷題記錄——第367題(有效的完全平方數)

題目描述

給定一個正整數 num,編寫一個函式,如果 num 是一個完全平方數,則返回 True,否則返回 False。

說明:不要使用任何內建的庫函式,如 sqrt。

示例 1:

輸入:16
輸出:True

示例 2:

輸入:14
輸出:False

思路分析

  • 回憶我們自己尋找平方根的過程,猜一個數後求其平方,如果大於要求的數則往小的數找;小於要求的數則往大了的數找,這是典型的二分法的思想。
  • 利用二分查詢法,實現。很關鍵,相當於練習二分法啦。

程式碼示例

class Solution(object
): def isPerfectSquare(self, num): """ :type num: int :rtype: bool """ start = 0 end = num while start <= end: mid = (start + end) // 2 test = mid ** 2 if test < num: start = mid + 1 elif
test == num: return True else: end = mid - 1 return False