问题描述:

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

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

示例 1:

  1. 输入:16
  2. 输出:True

示例 2:

  1. 输入:14
  2. 输出: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) / 2
  10. if mid >= num / mid:
  11. right = mid - 1
  12. else:
  13. left = mid + 1
  14. 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 True
  10. low=1
  11. high=num
  12. while high-low>1:
  13. mid=int((high+low)/2)
  14. if mid**2==num:
  15. return True
  16. if mid**2>num:
  17. high=mid
  18. if mid**2<num:
  19. low=mid
  20. return False

违反规定:

  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 !='':
  10. return False
  11. 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 False
  10. i = 0
  11. while i**2 < num:
  12. i += 1
  13. 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: # <= right
  10. mid = (left + right) // 2
  11. if mid**2 == num:
  12. return True
  13. if mid**2 < num:
  14. left = mid + 1
  15. if mid**2 > num:
  16. right = mid -1
  17. return False

2018-09-27 10:08:09

LeetCode--367--有效的完全平方数的更多相关文章

  1. Java实现 LeetCode 367 有效的完全平方数

    367. 有效的完全平方数 给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False. 说明:不要使用任何内置的库函数,如 sqrt. 示例 1: ...

  2. LeetCode 367.有效的完全平方数(C++)

    给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False. 说明:不要使用任何内置的库函数,如  sqrt. 示例 1: 输入:16 输出:True ...

  3. Leetcode之二分法专题-367. 有效的完全平方数(Valid Perfect Square)

    Leetcode之二分法专题-367. 有效的完全平方数(Valid Perfect Square) 给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 ...

  4. [LeetCode] 367. Valid Perfect Square 检验完全平方数

    Given a positive integer num, write a function which returns True if num is a perfect square else Fa ...

  5. [leetcode]367. Valid Perfect Square验证完全平方数

    Given a positive integer num, write a function which returns True if num is a perfect square else Fa ...

  6. [LeetCode]367. Valid Perfect Square判断完全平方数

    方法有很多,我觉得比较容易记住的是两个,一个是二分法,在1-num/2中寻找目标数 另一个是数学方法: public boolean isPerfectSquare(int num) { /* 有很多 ...

  7. [LeetCode] 279. Perfect Squares 完全平方数

    Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 1 ...

  8. [LeetCode] 0279. Perfect Squares 完全平方数

    题目 Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9 ...

  9. Leetcode 367. Valid Perfect Square

    Given a positive integer num, write a function which returns True if num is a perfect square else Fa ...

  10. [LeetCode] 367. Valid Perfect Square_Easy tag:Math

    Given a positive integer num, write a function which returns True if num is a perfect square else Fa ...

随机推荐

  1. 解决Access查询不区分大小写问题

    1.问题 比如查询用户名密码,会将所有没区分大小写的结果拿出来 2.解决 使用StrComp函数 QString execStr = QString("select * from [tabl ...

  2. upc组队赛1 过分的谜题【找规律】

    过分的谜题 题目描述 2060年是云南中医学院的百年校庆,于是学生会的同学们搞了一个连续猜谜活动:共有10个谜题,现在告诉所有人第一个谜题,每个谜题的答案就是下一个谜题的线索....成功破解最后一个谜 ...

  3. HihoCoder 1634 Puzzle Game(最大子矩阵和)题解

    题意:给一个n*m的矩阵,你只能选择一个格子把这个格子的数换成p(也可以一个都不换),问最大子矩阵和最小可能是多少? 思路: 思路就是上面这个思路,这里简单讲一下怎么n^3求最大子矩阵和:枚举两行(或 ...

  4. FJNU2018低程F jq解救fuls (贪心乱搞)题解

    题目描述 一天fuls被邪恶的"咕咕咕"抓走了,jq为了救fuls可谓是赴汤蹈火,费了九牛二虎之力才找到了"咕咕咕"关押fuls的地方. fuls被关在一个机关 ...

  5. BZOJ4893: 项链分赃 && BZOJ4895: 项链分赃(增强版)

    Solution 神仙题.jpg 切一刀简单啊,维护一个前缀和. 切两刀简单啊,拿个队列维护中间那一段. 切三刀,这tm什么毒瘤题. 于是打开题解:"保证不会答案不会超过宝石种类" ...

  6. 引入jquery利用Vue生命周期的钩子函数mounted操作DOM

    html <div id="app"> <div>{{message}}</div> </div> js var vm = new ...

  7. HDU 6191 Query on A Tree(可持久化Trie)

    题意 \(n\) 个点的有根树,根为 \(1\) .每个点有点权,有 \(q\) 个询问,每次询问以 \(u\) 为根的子树的点的点权中异或 \(x\) 所得的最大值是多少. 思路 求出整棵树的 \( ...

  8. ZooKeeper分布式过程协同技术详解1——ZooKeeper的概念和基础

    简介 分布式系统和应用,不仅能提供更强的计算能力,还能为我们提供更好的容灾性和扩展性. ZooKeeper是Google的Chubby项目的开源实现,它曾经作为Hadoop的子项目,在大数据领域得到广 ...

  9. C语言 分割字符串

    对指针的操作有点迷糊 只好采用下面一些比较low的手段 char str[100]; char delims[] = ";"; char *result = NULL; sprin ...

  10. Maven Web项目解决跨域问题

    跨域问题目前笔者所用到的方案大致有三种:jsonp,SpringMVC 4以上注解方式和cros三方过滤器. Jsonp JSONP(JSON with Padding)是一个非官方的协议,它允许在服 ...