程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

【Leetcode刷題Python】367. 有效的完全平方數

編輯:Python

1 題目

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

進階:不要 使用任何內置的庫函數,如 sqrt 。

示例 1:

輸入:num = 16
輸出:true

2 解析

(1)方法一
利用 ( n + 1 ) 2 − n 2 = 2 n + 1 (n+1)^2 - n^2 = 2n+1 (n+1)2−n2=2n+1,距離4 = 1+3,9 = 1+3+5,16 = 1+3+5+7,反過來,判斷是一個數是不是平方數,逐個減去奇數,如果最後等於0,就是平方數
(2)方法二
利用暴力求解,二分的思想去減少暴力求解的次數。

3 Python實現

(1)方法一

class Solution:
def isPerfectSquare(self, num: int) -> bool:
i = 1
while num>0:
num -=i
i +=2
if num==0:
return True
else:
return False

(2)方法二

left ,right = 0,num
index = 0
while left <=right:
mid = (left+right)//2
if mid*mid<=num:
index = mid
left = mid+1
else:
right = mid-1
if index*index ==num:
return True
else:
return False

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved