zoukankan      html  css  js  c++  java
  • 35.Search Insert Position

    思路:
    • 直接遍历数组。复杂度为(O(n))
    class Solution {
    public:
        int searchInsert(vector<int>& nums, int target) {
            if(target < nums[0]) return 0;
            if(target > nums[nums.size()-1]) return nums.size();
            for(int i = 0; i < nums.size(); i++){
                if(nums[i] == target) return i;
                if(nums[i] > target) return i;
            }
        }
    };
    
    • 利用二分查找,注意最后利用mid找插入位置。复杂度为(O(log(n)))
    class Solution {
    public:
        int searchInsert(vector<int>& nums, int target) {
            int len = nums.size();
            int lo = 0,hi = len-1;
            int flag = 0;
            int pos = -1;
            int mid = 0;
            
            while(lo <= hi){
                mid = (hi + lo)/ 2;
                if(nums[mid] == target){
                    flag = 1;
                    pos = mid;
                    break;
                }
                else if(nums[mid] < target){
                    lo = mid+1;
                }
                else hi = mid -1;
            }
            
            if(flag) return pos;
            else if(nums[mid] > target) return mid;
            else  return mid+1;
        }
    };
    
  • 相关阅读:
    MTV和MVC的区别
    django权限之二级菜单
    Python PEP8代码书写规范
    form表单
    forms组件
    Django的用户认证组件
    Django的分页
    cookie session
    文件上传
    ORM多表操作上
  • 原文地址:https://www.cnblogs.com/UniMilky/p/6959415.html
Copyright © 2011-2022 走看看