zoukankan      html  css  js  c++  java
  • 二分搜索模板

    搜索区间统一为两端关闭即[left,right]

    普通二分搜索

    int binary_search(int[] nums,int target){
       int left=0,right=nums.length-1;
       while(left<=right){
           int mid = left+(right-left)/2;
           if(nums[mid]<target){
               left = mid + 1;
          }else if(nums[mid]>target){
               right = mid -1;
          }else if(nums[mid]==target){
               return mid
          }
      }
       return -1;
    }

    左侧搜索二分

    int left_bound(int[] nums,int target){
       int left=0,right=nums.length-1;
       while(left<=right){
           int mid = left+(right-left)/2;
           if(nums[mid]>target){
               right = mid - 1;
          }else if(nums[mid]<target){
               left = mid + 1;
          }else if(nums[mid]==target){
                   right = mid -1;
              }
           if(left>=nums.length||nums[left]!=target){
               return -1;
          }
           return left;
      }
    }

    右侧搜索二分

    int right_bound(int[] nums,int target){
       int left=0,right=nums.length-1;
       while(left<=right){
           int mid=left+(right-left)/2;
           if(nums[mid]>target){
               right = mid -1;
          }else if(nums[mid]<target){
               left = mid + 1;
          }else if(nums[mid]==target){
               left = mid + 1
          }
      }
       if(right<0||nums[right]!=target)
           return -1;
       return right;
    }

     

  • 相关阅读:
    TrieTree的学习
    单调队列(monotonic queue)列与单调栈的学习
    507. Perfect Number
    157. Read N Characters Given Read4
    nsexec
    nsenter
    setjmp
    runc 测试
    cgo setns + libcontainer nsexec
    前端 导出为Excel 数据源为table表格 并且table中含有图片
  • 原文地址:https://www.cnblogs.com/blzm742624643/p/15753822.html
Copyright © 2011-2022 走看看