您的位置:首页 > 教育 > 锐评 > 编程培训机构出来的能找到工作吗_c2c电子商务平台有哪些?_网址注册查询_域名流量查询工具

编程培训机构出来的能找到工作吗_c2c电子商务平台有哪些?_网址注册查询_域名流量查询工具

2024/10/6 10:28:03 来源:https://blog.csdn.net/UZDW_/article/details/142595875  浏览:    关键词:编程培训机构出来的能找到工作吗_c2c电子商务平台有哪些?_网址注册查询_域名流量查询工具
编程培训机构出来的能找到工作吗_c2c电子商务平台有哪些?_网址注册查询_域名流量查询工具

LeetCode 704. 二分查找

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
示例 1:
输入: nums = [-1,0,3,5,9,12], target = 9
输出: 4
解释: 9 出现在 nums 中并且下标为 4
示例 2:
输入: nums = [-1,0,3,5,9,12], target = 2
输出: -1
解释: 2 不存在 nums 中因此返回 -1
提示:
你可以假设 nums 中的所有元素是不重复的。
n 将在 [1, 10000]之间。
nums 的每个元素都将在 [-9999, 9999]之间。

二分查找基础模板(必背)

class Solution:def search(self, nums: List[int], target: int) -> int:left, right = 0, len(nums) - 1while left <= right:mid = (left + right) // 2if nums[mid] < target:left = mid + 1elif nums[mid] > target:right = mid - 1else:return midreturn -1

拓展模板(必背)

class Solution:def search(self, nums: List[int], target: int) -> int:left, right = 0, len(nums) - 1while left <= right:mid = (left + right) // 2if nums[mid] < target:left = mid + 1else:  # nums[mid] >= targetright = mid - 1return left # 最终,left为该数组中从左到右第一个可以插入target的位置# 也就是说,此时,left 为 nums[i] <= target 的最小值,如果没有left == len(nums)# 说白了,这个算法用于从左到右查询第一个右边元素均小于target的位置,

在这个模板的基础上,可以解决很多问题,如二分查找能在此基础上改写为:

class Solution:def search(self, nums: List[int], target: int) -> int:left, right = 0, len(nums) - 1while left <= right:mid = (left + right) // 2if nums[mid] < target:left = mid + 1else:  # nums[mid] >= targetright = mid - 1return left if left < len(nums) and nums[left] == target else -1

更多分析可见大佬文章

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com