C/C++教程

搜索插入位置——二分查找——记录(C++)

本文主要是介绍搜索插入位置——二分查找——记录(C++),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

class Solution {
public:
    int searchInsert(vector<int>& nums, int target) {
        int s=0;
           for(int x=0;x<nums.size();x++)
           {
              if (target==nums[x])
              {
                  return x;
              }
              else if(target>nums[x])
              {
                  s=x+1;
              }
           }
        return s; 
        }
};

又是一道很快解决的题目,但我并没有真正完成它的要求,没能达到0(log n)

做题过程中对于算法的应用还是太少了;

 于是参考了答案,打了另一个解法;

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

答案利用使用了二分查找法,这个算法比较简单,但我还是没想到。

一天熟悉两个算法还是不戳的!

加油!

 

这篇关于搜索插入位置——二分查找——记录(C++)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!