zoukankan      html  css  js  c++  java
  • 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.

    Here are few examples.
    [1,3,5,6], 5 → 2
    [1,3,5,6], 2 → 1
    [1,3,5,6], 7 → 4
    [1,3,5,6], 0 → 0

    Analyse: Binary search. Whenever meeting a number, compare the pre/next number with the target. 

    Runtime: 8ms.

     1 class Solution {
     2 public:
     3     int searchInsert(vector<int>& nums, int target) {
     4         int left = 0, right = nums.size() - 1;
     5         while(left <= right){
     6             int mid = (left + right) / 2;
     7             if(nums[mid] < target){
     8                 if(mid == nums.size() - 1) return mid + 1;
     9                 else{
    10                     if(nums[mid + 1] >= target) return mid + 1;
    11                 }
    12                 left = mid + 1;
    13             }
    14             else if(nums[mid] > target){
    15                 if(mid == 0) return mid;
    16                 else{
    17                     if(nums[mid - 1] < target) return mid;
    18                 }
    19                 right = mid - 1;
    20             }
    21             else return mid;
    22         }
    23     }
    24 };
  • 相关阅读:
    新加坡
    android alt + /
    豌豆荚开源技术
    有意思的
    android view
    localstorage性能
    Android WebView使用基础
    关于hash
    Android 近百个项目的源代码,覆盖Android开发的每个领域
    10个经典的Android开源项目(附源码包)
  • 原文地址:https://www.cnblogs.com/amazingzoe/p/4672722.html
Copyright © 2011-2022 走看看