zoukankan      html  css  js  c++  java
  • 0367-leetcode算法实现之有效完全平方根-valid-perfect-square-python&golang实现

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

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

    示例 1:

    输入:num = 16
    输出:true
    示例 2:

    输入:num = 14
    输出:false

    提示:

    1 <= num <= 2^31 - 1

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/valid-perfect-square

    python

    class Solution:
        def isPerfectSquare(self, num: int) -> bool:
            if num < 1:
                return False
            left, right, ans = 0, num, -1
            while left <= right:
                mid = left + ((right-left)>>1)
                if mid*mid > num:
                    right = mid - 1
                else:
                    ans = mid
                    left = mid + 1
            res = True if ans*ans == num else False
            return res
    
    if __name__  == "__main__":
        num = 888
        test = Solution()
        print(test.isPerfectSquare(num))
    

    golang

    package main
    
    import (
    	"fmt"
    )
    
    func main() {
    	var x int = 656
    	fmt.Println(isperfectSquare(x))
    }
    
    func isperfectSquare(num int) bool {
    	if num < 1 {
    		return false
    	}
    	var left int = 0
    	var right int = num
    	var ans int = -1
    	for left <= right {
    		var mid int = left + ((right - left) >> 1)
    		if mid*mid > num {
    			right = mid - 1
    		} else {
    			ans = mid
    			left = mid + 1
    		}
    	}
    	var res bool
    	if ans*ans == num {
    		res = true
    	} else {
    		res = false
    	}
    	return res
    }
    
  • 相关阅读:
    ES6中对象新增方法
    ES6中字符串新增方法
    Laya 吐槽日志.
    汇编与反汇编工具
    Mac 软件下载地址
    红米手机 android4.4.4 root之路
    查看apk安装包信息
    文件搜索
    自动发表QQ空间说说
    批量格式化json
  • 原文地址:https://www.cnblogs.com/davis12/p/15405839.html
Copyright © 2011-2022 走看看