今天我们一起挑战leetcode第367题Valid Perfect Square!
Given a positive integer num, write a function which returns True if num is a perfect square else False.
Follow up: Do not use any built-in library function such as sqrt.
Example 1:
Input: num = 16
Output: trueExample 2:
Input: num = 14
Output: false
今天这题与我们昨天做过的sqrt(x)具有相关性,可以利用昨天写出来的程序码,来完成这题的要求。此题会给我们一整数,并要我们回传此数是否为完全平方数,是就回传True否则False。当然这题与昨天一样,题目要求不能使用内建的sqrt功能。
我们可以参考昨天曾经实作过的sqrt功能,但与昨天不同,我们并非要求出某个数的根号取到整数,我们是要直接确认某数是否为完全平方数,意味着在我们找到题目给我们数的根号的范围时,要确认的是其是否为整数。
以下是python的程序码
class Solution:
def isPerfectSquare(self, num: int) -> bool:
guess = 1000
while True:
p = int(guess)
q = p + 1
guess = (guess + num / guess) / 2
if p*p == num: # 确认是完全平方数
return True
if p*p <= num and q*q > num: # 非完全平方数,因其根号介於两整数之间
return False
「思考」是最困难的工作,这大概就是很少人花费精力思考的原因吧。 Thinking is the ha...
一. 前言 前一天已经说明N-gram的一些计算方式了,这篇会以实作'预测词'来作为N-gram的范...
今天要说在後端的Cube.js Server连线DB後,对DB的请求需要做什麽样的设置,也就是如何建...
昨天的题目主要都是暴力破解,相对之下感觉有一点点无聊,那今天我们来打一个简单的 Exploit 吧!...
为了协助新进同学,仍应该介绍基本程序的写法 编写小程序验证的做法请参考第一章的套件介绍,hello...