• 力扣刷题 day37:10-07


    1.二分查找

    给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

    方法一:二分法

    1. #方法一:二分法
    2. def search(nums,target):
    3. left,right=0,len(nums)-1
    4. while left<=right:
    5. mid=(left+right)//2
    6. if nums[mid]>target:
    7. right=mid-1
    8. elif nums[mid]
    9. left=mid + 1
    10. else:
    11. return mid #找到了
    12. return -1 #没有找到

    2.寻找比目标字母大的最小字母

    给你一个字符数组 letters,该数组按非递减顺序排序,以及一个字符 target。letters 里至少有两个不同的字符。

    返回 letters 中大于 target 的最小的字符。如果不存在这样的字符,则返回 letters 的第一个字符。

    方法一:二分查找 

    1. #方法一:二分查找
    2. def nextGreatestLetter(letters,target):
    3. left,right=0,len(letters) -1
    4. if target>=letters[-1]: #没有找到
    5. return letters[0]
    6. while left<=right:
    7. mid=(left+right)//2
    8. if letters[mid]>target:
    9. right=mid-1
    10. elif letters[mid] <= target:
    11. left=mid + 1
    12. return letters[left]

    3.公平的糖果交换

    爱丽丝和鲍勃拥有不同总数量的糖果。给你两个数组 aliceSizes 和 bobSizes ,aliceSizes[i] 是爱丽丝拥有的第 i 盒糖果中的糖果数量,bobSizes[j] 是鲍勃拥有的第 j 盒糖果中的糖果数量。

    两人想要互相交换一盒糖果,这样在交换之后,他们就可以拥有相同总数量的糖果。一个人拥有的糖果总数量是他们每盒糖果数量的总和。

    返回一个整数数组 answer,其中 answer[0] 是爱丽丝必须交换的糖果盒中的糖果的数目,answer[1] 是鲍勃必须交换的糖果盒中的糖果的数目。如果存在多个答案,你可以返回其中 任何一个 。题目测试用例保证存在与输入对应的答案。

    方法一:求和+遍历 

    1. #方法一:求和+遍历
    2. def fairCandySwap(aliceSizes,bobSizes):
    3. s1=sum(aliceSizes)
    4. s2=sum(bobSizes)
    5. target=(s2-s1)//2 #交换两个数之差
    6. for i in aliceSizes:
    7. if (i+target) in bobSizes:
    8. return [i,i + target] #找到了

  • 相关阅读:
    总结 Thread 类的基本用法
    LeetCode | 232. 用栈实现队列
    认识PostgreSQL
    利用maven的dependency插件将项目依赖从maven仓库中拷贝到一个指定的位置
    Hive的文件合并
    Python爬虫教程,从入门到成神
    【漏洞复现】E-office文件包含漏洞
    蓝牙技术|蓝牙在物联网产品上的功能,特别是苹果Find My中的应用
    iOS开发UI模块分类和Mac电脑使用快捷键
    构建高质量的持续交付体系
  • 原文地址:https://blog.csdn.net/hhhh1ay/article/details/133660116