博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode--367--有效的完全平方数
阅读量:5280 次
发布时间:2019-06-14

本文共 2194 字,大约阅读时间需要 7 分钟。

问题描述:

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

说明:不要使用任何内置的库函数,如  sqrt

示例 1:

输入:16输出:True

示例 2:

输入:14输出:False

官方:

1 class Solution(object): 2     def isPerfectSquare(self, num): 3         """ 4         :type num: int 5         :rtype: bool 6         """ 7         left, right = 1, num 8         while left <= right: 9             mid = left + (right - left) / 210             if mid >= num / mid:11                 right = mid - 112             else:13                 left = mid + 114         return left == num / left and num % left == 0

官方2:

1 class Solution(object): 2     def isPerfectSquare(self, num): 3         """ 4         :type num: int 5         :rtype: bool 6         """ 7         self.num=num 8         if num==1: 9             return True10         low=111         high=num12         while high-low>1:13             mid=int((high+low)/2)14             if mid**2==num:15                 return True16             if mid**2>num:17                 high=mid18             if mid**2

违反规定:

1 import math 2 class Solution(object): 3     def isPerfectSquare(self, num): 4         """ 5         :type num: int 6         :rtype: bool 7         """                              #4.0 8         a =  str(math.sqrt(num)).split(".")[1] 9         if a !='0':10             return False11         return True

另外:

1 import math 2 class Solution(object): 3     def isPerfectSquare(self, num): 4         """ 5         :type num: int 6         :rtype: bool 7         """ 8         if num < 0: 9             return False10         i  = 011         while i**2 < num:12             i += 113         return i**2 == num

最后为什么时间超限:

1 class Solution(object): 2     def isPerfectSquare(self, num): 3         """ 4         :type num: int 5         :rtype: bool 6         """ 7         left = 1 8         right = num 9         while left <= num:           # <= right10             mid = (left + right) // 211             if mid**2 == num:12                 return True13             if mid**2 < num:14                 left = mid + 115             if mid**2 > num:16                 right = mid -117         return False

2018-09-27 10:08:09

转载于:https://www.cnblogs.com/NPC-assange/p/9711633.html

你可能感兴趣的文章
C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 客户端多网络支持
查看>>
HDU 4122
查看>>
Suite3.4.7和Keil u3自带fx2.h、fx2regs.h文件的异同
查看>>
打飞机游戏【来源于Crossin的编程教室 http://chuansong.me/account/crossincode 】
查看>>
[LeetCode] Merge Intervals
查看>>
【翻译自mos文章】当点击完 finishbutton后,dbca 或者dbua hang住
查看>>
Linux编程简介——gcc
查看>>
2019年春季学期第四周作业
查看>>
MVC4.0 利用IActionFilter实现简单的后台操作日志功能
查看>>
rotate the clock
查看>>
bugku 变量
查看>>
数据库01 /Mysql初识以及基本命令操作
查看>>
数据库02 /MySQL基础数据类型以及多表之间建立联系
查看>>
Python并发编程04/多线程
查看>>
CF461B Appleman and Tree
查看>>
CF219D Choosing Capital for Treeland
查看>>
杂七杂八的小笔记本
查看>>
51Nod1353 树
查看>>
CF1215E Marbles
查看>>
BZOJ2339 HNOI2011卡农(动态规划+组合数学)
查看>>