• 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 };
  • 相关阅读:
    redis的两种安装方法
    http头部信息
    软件测试技术知识
    github使用
    3 python之基础概要
    2 Python之编程语言介绍及变量
    1 Python入门及计算机硬件知识
    Linux常用命令
    CMDB小练习
    CMDB和运维自动化
  • 原文地址:https://www.cnblogs.com/amazingzoe/p/4672722.html
Copyright © 2020-2023  润新知