zoukankan      html  css  js  c++  java
  • 35. Search Insert Position(二分查找)

    Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.

    You may assume no duplicates in the array.

    Example 1:

    Input: [1,3,5,6], 5
    Output: 2
    

    Example 2:

    Input: [1,3,5,6], 2
    Output: 1
    

    Example 3:

    Input: [1,3,5,6], 7
    Output: 4
    

    Example 4:

    Input: [1,3,5,6], 0
    Output: 0


    class Solution {
    public:
        int searchInsert(vector<int>& nums, int target) {
            return bt_search(nums,target);
        }
        int bt_search(vector<int>& a ,int target) {
            int low = 0;
            int high = a.size() - 1;
            while (low<=high) {
                int mid = low + (high - low) / 2;
                if (a[mid] < target) {
                    low = mid + 1;
                } else if (target < a[mid]) {
                    high = mid - 1;
                } else {
                    return mid;
                }
            }
            return low ; 
        }
    };
    

      

     1 class Solution {
     2     public int searchInsert(int[] nums, int target) {
     3         int n = nums.length;
     4         int lo = 0;
     5         int hi = n-1;
     6         while(lo<=hi){
     7             int mid = lo+(hi-lo)/2;
     8             if(nums[mid]>target)
     9                 hi = mid - 1;
    10             else if (nums[mid]<target)
    11                 lo = mid + 1;
    12             else 
    13                 return mid;
    14         }
    15         return lo;
    16     }
    17 }
  • 相关阅读:
    css 基础
    css 基础-1
    html 入门2-表
    CMDB (后台管理) CURD 插件
    序列化
    AES(高级加密)
    API验证
    数据库取时间(分组)
    用户权限 (知识点)
    xss 过滤
  • 原文地址:https://www.cnblogs.com/zle1992/p/8987874.html
Copyright © 2011-2022 走看看