zoukankan      html  css  js  c++  java
  • 35. 搜索插入位置-7月17日

    题目

    35. 搜索插入位置

    我的思路

    这个题比较简单,用二分法即可。

    在具体实现时,我最初想的是用一个滑标,迭代调整滑标的位置,但是边界调节并不好处理。

    下面记一个二分法的模板,窗口法,用left和right标识当前窗口的左右边界。用mid=(left+right)/2下标对应的元素与目标值比较,根据比较结果更新left或right为mid+1或mid-1的值。直到left>right或者查找到目标值。

    我的实现

    
    
    class Solution {
    public:
        int searchInsert(vector<int>& nums, int target) {
            int left = 0;
            int right = nums.size()-1;
            if(right<0)return 0;
            int mid;
            while(left<=right){//当left==right时还没有满足条件的会跳出循环
                mid = (left+right)/2;
                if(nums[mid]<target){
                    left=mid+1;
                }else if(nums[mid]>target){
                    right=mid-1;
                }else{
                    return mid;
                }
            }
    
            if(nums[mid]>=target)return mid;
            else return mid + 1;
            
        }
    };
    
    //二分法
    //本题要找的是target<=nums[i]的min i
    //二分法通用模板!!!!
    /**
    left = 0;right = n-1;
        while(left<=right){//当left==right时还没有满足条件的会跳出循环
            mid = (left+right)/2;
            if(nums[mid]<target){
                left=mid+1;
            }else if(nums[mid]>target){
                right=mid-1;
            }else{
                return mid;
            }
            }
    */

    时间复杂度:logn

    拓展学习

  • 相关阅读:
    Cookie操作
    C# 操作Cookie类
    面向对象之struct
    高薪程序员都避开了那些坑【安晓辉】
    [转]C#之反射
    [转]正则表达式相关:C# 抓取网页类(获取网页中所有信息)
    membership 在web.config中配置信息
    面向对象之virtual
    面向对象之多态
    JAVA面向对象 接口
  • 原文地址:https://www.cnblogs.com/BoysCryToo/p/13328887.html
Copyright © 2011-2022 走看看