首页 > 其他分享 >704.二分查找

704.二分查找

时间:2023-01-24 11:22:30浏览次数:43  
标签:二分 target nums 704 number 查找 目标值

题目:

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

要求

输入: nums = [-1,0,3,5,9,12], target = 9

输出: 4

解释: 9 出现在 nums 中并且下标为 4

题解:

/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number}
 */
// 二分查找
var search = function(nums, target) {
  let left=0;//左边界
  let right = nums.length-1;//右边界
  while(left<=right){
    let middle = left+parseInt((right-left)/2);//中间位置
    if(nums[middle]>target){//当中间大于目标值
      right = middle-1;//把中间赋值为右边界
    }else if(nums[middle]<target){
      left=middle+1;//把中间赋值为左边界
    }else{
      return middle//中间值为目标值
    }


  }
  return -1;//目标值不在数组中

};
nums = [-1,0,3,5,9,12,32];
console.log(search(nums,9));

标签:二分,target,nums,704,number,查找,目标值
From: https://www.cnblogs.com/ma1998/p/17065968.html

相关文章

  • 基于matlab的二分法求解方程的根(Bisection method)
    ​​https://zhuanlan.zhihu.com/p/139961663​​​​http://www.zhihuishi.com/source/15627.html​​......
  • 【题解】P5787 二分图 /【模板】线段树分治
    概念线段树分治是一种用于维护时间轴等的离线算法,本质上是通过维护时间轴的连续区间得到某一时刻的状态。时间复杂度和普通线段树相同,空间复杂度为\(O(n\logn)\)例题......
  • 离散化( 排序+ 二分查找)
     inttemp[N],a[N];intmain(){intn;cin>>n;for(inti=1;i<=n;i++){cin>>a[i];temp[i]=a[i];}sort(temp+1,temp+n+1);......
  • 2021 上海 M(Ag) 二分图 构造
    最近寒假闲来无事,所以开个博客记录记录自己做题时的一些想法和过程。当时看M官方题解时感觉有点难理解和不太符合自然思路,所以来写一个我觉得比较自然的思路。原题链接:Pr......
  • 程序:在数组中用二分法找到相应的数字下标
    #include<stdio.h>intmain(){intarr[]={1,2,3,4,5,6,7,8,9,10};intleft=0;intright=sizeof(arr)/sizeof(arr[0]);intmid=0;intanswer=8;while(left<=......
  • 20th Jan 1872.查找用户活跃分钟数
    20thJan1872.查找用户活跃分钟数给你用户在LeetCode的操作日志,和一个整数k。日志用一个二维整数数组logs表示,其中每个logs[i]=[IDi,timei]表示ID为IDi的......
  • 力扣每日一题2023.1.20---1817. 查找用户活跃分钟数
    给你用户在LeetCode的操作日志,和一个整数k。日志用一个二维整数数组logs表示,其中每个logs[i]=[IDi,timei]表示ID为IDi的用户在timei分钟时执行了某个操作......
  • 第六章 查找函数
    本章介绍了VLOOKUP与XLOOUP,受限于excel版本,有时无法使用XLOOKUP1、VLOOKUPVLOOKUP(查找依据,依据所处区域,结果位于哪列,匹配模式) TRUE为模糊匹配 FALSE为精确匹配eg:V......
  • 实现一个整型有序数组的二分查找(函数)
    解法:#include<stdio.h>intbinary_search(intarr[],intk,intsz){//intsz=sizeof(arr)/sizeof(arr[0]);不能在这intleft=0;intright=sz-1;while(left<=right)......
  • 1817. 查找用户活跃分钟数
    1817.查找用户活跃分钟数题解模拟:用map存,map的key存用户id,value存该用户的操作的time列表(去重,可以用set)统计res,遍历map,map的value为该用户的操作时间list,用这个list......