• LeetCode


    35. Search Insert Position 

    Problem's Link

     ----------------------------------------------------------------------------

    Mean: 

    给定一个有序数组和一个数k,求k在这个数组中插入的下标.

    analyse:

    二分查找.

    Time complexity: O(N)

     

    view code

    /**
    * -----------------------------------------------------------------
    * Copyright (c) 2016 crazyacking.All rights reserved.
    * -----------------------------------------------------------------
    *       Author: crazyacking
    *       Date  : 2016-03-02-08.49
    */
    #include <queue>
    #include <cstdio>
    #include <set>
    #include <string>
    #include <stack>
    #include <cmath>
    #include <climits>
    #include <map>
    #include <cstdlib>
    #include <iostream>
    #include <vector>
    #include <algorithm>
    #include <cstring>
    using namespace std;
    typedef long long(LL);
    typedef unsigned long long(ULL);
    const double eps(1e-8);

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

    int main()
    {
       Solution solution;
       int n,k;
       while(cin>>n>>k)
       {
           vector<int> ve;
           for(int i=0;i<n;++i)
           {
               int tempVal;
               cin>>tempVal;
               ve.push_back(tempVal);
           }
           cout<<"pos="<<solution.searchInsert(ve,k)<<endl;
       }
       return 0;
    }
    /*

    */
  • 相关阅读:
    Linux配置——Linux服务器搭建Nexus-Maven私服(适合新手比较基础)
    maven配置——Maven3版本的超级POM位置及中央仓库位置
    CentOS7使用——使用命令连接网络配置
    H5页面开发流程
    在Sublime Text 3上集成JSHint检查
    如何快速开发符合规范的web页
    Talking about your future
    Healthy living
    谈论较受欢迎的电影类型
    谈论电视节目
  • 原文地址:https://www.cnblogs.com/crazyacking/p/5233587.html
Copyright © 2020-2023  润新知