首页 > 其他分享 >leedcode-

leedcode-

时间:2024-04-13 14:55:05浏览次数:30  
标签:right num leedcode 二分法 查找 left

用二分法查找平方根:

class Solution:
    def isPerfectSquare(self, num: int) -> bool:
        # 初始化左右边界
        left = 1
        right = num
        
        # 开始二分查找
        while left <= right:
            # 计算中间值
            mid = left + (right - left) // 2
            
            # 比较中间值的平方与原数
            if mid * mid == num:  # 如果中间值的平方等于原数
                return True  # 原数是平方数,返回True
            elif mid * mid < num:  # 如果中间值的平方小于原数
                left = mid + 1  # 更新左边界为mid + 1,继续搜索右半部分
            else:  # 如果中间值的平方大于原数
                right = mid - 1  # 更新右边界为mid - 1,继续搜索左半部分
        
        # 如果循环结束仍未找到平方根,则原数不是平方数,返回False
        return False

 

标签:right,num,leedcode,二分法,查找,left
From: https://www.cnblogs.com/yyyjw/p/18132863

相关文章

  • leedcode-两个数组的交集
    自己写的:fromtypingimportList#导入List类型,用于函数参数和返回类型的注解classSolution:defintersection(self,nums1:List[int],nums2:List[int])->List[int]:#初始化一个空列表,用于存储两个列表的交集mylist=[]#遍历num......
  • leedcode-反转字符串中的元音字母
    自己写的,双指针,一次通过classSolution:defreverseVowels(self,s:str)->str:#将输入的字符串转换为列表s_list=list(s)#定义元音字母列表vowels=['a','e','i','o','u','A&......
  • leedcode-反转字符串
    自己写的,这么简单?fromtypingimportListclassSolution:defreverseString(self,s:List[str])->None:n=len(s)#获取字符串列表的长度#使用双指针法来反转字符串#初始化指针i指向字符串开头,指针j指向字符串结尾......
  • leedcode-比特位计数
    自己写的:fromtypingimportListclassSolution:defcountBits(self,n:int)->List[int]:#创建一个空列表来存储结果result=[]#循环遍历从0到n的所有数字foriinrange(n+1):#将当前数字转换为二进制表示......
  • leedcode-3 的幂
    自己写的,耗时很长classSolution:defisPowerOfThree(self,n:int)->bool:#如果n为负数,则不是3的幂ifn<0:returnFalse#如果n为1,则是3的幂ifn==1:returnTrue#如果......
  • leedcode-区域和检索 - 数组不可变
    自己写的,耗时很长classNumArray:def__init__(self,nums:List[int]):#初始化NumArray类,接收一个整数列表nums作为参数self.nums=nums#将传入的nums列表存储为对象的属性defsumRange(self,left:int,right:int)->int:"""......
  • leedcode-单词规律
    自己写的,好像有点复杂:classSolution:defwordPattern(self,pattern:str,s:str)->bool:#将字符串s按空格切分成单词列表mystr=s.split()#创建一个空字典,用于存储字符和其出现位置的映射mydic=dict()......
  • leedcode-第一个错误的版本
    自己写的二分法:classSolution:deffirstBadVersion(self,n:int)->int:#初始化左右指针进行二分查找left=1right=n#检查第一个版本是否是坏版本ifisBadVersion(1):return1#检查......
  • leedcode-丢失的数字
    自己写的,调包排序:fromtypingimportListclassSolution:defmissingNumber(self,nums:List[int])->int:#将输入的列表排序nums_new=sorted(nums)#如果排序后的列表的第一个元素不是0,说明0缺失,直接返回0ifnums_n......
  • leedcode-丑数
    丑数就是只包含质因数2、3和5的正整数。换句话说丑数=2*……*2*3*……*3*5*……*5classSolution:defisUgly(self,n:int)->bool:#如果n小于等于0,则不是丑数,返回Falseifn<=0:returnFalse#如果n是......