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
    }
    
  • 相关阅读:
    04-增删改查
    03-编写dao实现类方式
    02-基于注解的入门案例
    .net core api 图片上传与加载
    笔记一、数据库初始化 约定
    .net core MVC中级教程(四)
    .net core MVC中级教程(三)
    Windows 盘符映射
    c# 队列和堆栈
    isValidNode
  • 原文地址:https://www.cnblogs.com/davis12/p/15405839.html
Copyright © 2011-2022 走看看