当前位置: 首页 > Web前端 > JavaScript

二分法的左右边界

时间:2023-03-27 15:33:31 JavaScript

二分法的左右边界二分法还是蛮好用的,但是每次总是纠结怎么判断边界条件,用小于号还是小于号比或等号,满足条件后左边的mid还是mid+1,为此我做了两道简单的题,整理了一下思路。问题1给定一个排序数组和一个目标值,在数组中找到目标值并返回其索引。如果数组中不存在目标值,则返回将按顺序插入的位置。请使用时间复杂度为O(logn)的算法varsearchInsert=function(nums,target){letleft=0letright=nums.lengthif(nums[0]>target){return0}while(lefttarget){right=mid}else{returnmid}}returnleft};题目2给定一个有n个元素的有序(升序)整数数组nums和一个目标值target,编写一个函数搜索numstarget,如果目标值存在则返回下标,否则返回-1。varsearch=function(nums,target){letleft=0letright=nums.长度while(lefttarget){right=mid}else{返回中期}}返回-1};我一般做二分法的问题是用小于号来做判断,而(left