2019-06-13

LeetCode 367. Valid Perfect Square.jpg

LeetCode 367. Valid Perfect Square

Description

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

Note: Do not use any built-in library function such as sqrt.

Example 1:

Input: 16
Output: true
Example 2:

Input: 14
Output: false

描述

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

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

示例 1:

输入:16
输出:True
示例 2:

输入:14
输出:False

思路

  • 用二分法对一个正数开方,如果存在一个正整数 t ,并且 t 的平方等于给定的数,说明该数是完全平方数。
  • 考察基本的二分法。
# -*- coding: utf-8 -*-
# @Author:             何睿
# @Create Date:        2019-06-13 14:35:51
# @Last Modified by:   何睿
# @Last Modified time: 2019-06-13 14:42:06


class Solution:
    def isPerfectSquare(self, num: int) -> bool:
        left, right = 1, num
        while left <= right:
            middle = left + ((right - left) >> 1)
            tmp = middle ** 2
            if tmp == num:
                return True
            elif tmp < num:
                left = middle + 1
            else:
                right = middle - 1

        return False

源代码文件在 这里
©本文首发于 何睿的博客 ,欢迎转载,转载需保留 文章来源 ,作者信息和本声明.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 分号的选择问题 如何获得帮助信息(两种方式) 除法的运行结果是浮点数,如果想丢弃小数部分,需要使用双斜杠 // 的...
    BackSpace8阅读 3,138评论 0 0
  • 不要想太多 很多你会觉得别人看你怎么挣钱,这不是重点,重点是别人的成绩可以提高,也没有什么同事那么对你不好,他们都...
    三不主义阅读 619评论 0 0
  • 平静又内心忐忑,可能是一个隐藏性的戏精。 逃一般的出走,希望当我回去时,如重生一般,波澜不惊,刀枪不入。任性的用自...
    富盟主阅读 4,580评论 0 1
  • 前沿 在项目中遇到楼层导航的需求,于是乎就开始撸代码,需要加一些动画,这时候就需要用到scroll属性,有些忘记了...
    郝艳峰Vip阅读 3,880评论 0 2
  • 记得以前读书的时候,老师给我们说写文章用老三段不会错,因为你文章不分段落看起来不好,分太多又感觉零散,分三...
    鸿运当头168阅读 984评论 1 3