leetcode二分法
2026/5/6 10:26:42 网站建设 项目流程

二分法

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

你必须编写一个具有O(log n)时间复杂度的算法。

讲解:

有序整型数组找到一个目标就可以考虑使用二分法这里考虑左闭右闭区间右开区间

这里只说一下左闭右闭区间[1,1]

这里left可以等于right的,二分法思路就是每次取中间值mid,然后target进行比较如果当前中间值小于target那么我们把mid+1的赋值left反之那么我们把mid-1的赋值right

/*** @param {number[]} nums* @param {number} target* @return {number}*/varsearch=function(nums, target){letleft=0;letright=nums.length-1while(nums[left]<=nums[right]){letmid=Math.ceil((left+right)/2);if(nums[mid]<target){left=mid+1}elseif(nums[mid]>target){right=mid-1}else{returnmid}}return-1};

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询