• LeetCode OJ--Search Insert Position


    https://oj.leetcode.com/problems/search-insert-position/

    数组有序,给一个数,看它是否在数组内,如果是则返回位置,如果不在则返回插入位置。

    因为原数组有序,所以使用二分查找。

    注意:如果是要插入这个元素的话,当target元素小于begin时候,是在begin位置上插入,如果大于则在begin+1位置上插入。

    要测试数组为空,或者只有一个元素时候情况。

    #include <iostream>
    using namespace std;
    
    class Solution {
    public:
        int searchInsert(int A[], int n, int target) {
            if(n==0)
                return 0;
            int begin = 0; 
            int end  = n-1;
            int middle = (begin + end)/2;
            while(begin<end)
            {
                if(target == A[middle])
                    return middle;
                else if(target<A[middle])
                    end = middle - 1;
                else
                    begin = middle+1;
                middle = (begin + end)/2;
            }
            if(A[begin] >= target )
                return begin;
            return begin +1;
    
        }
    };
    
    int main()
    {
        int arr[] = {1,3,5,6};
        Solution myS;
        cout<<myS.searchInsert(arr,1,0);
    }
  • 相关阅读:
    Hibernate
    Mysql
    JavaWeb
    Springboot
    spring MVC
    spring
    mybatis学习
    ftp客户端封装
    win10子系统 wsl开机启动ssh服务
    eclipse 终于官方支持代码模糊提示了
  • 原文地址:https://www.cnblogs.com/qingcheng/p/3750832.html
Copyright © 2020-2023  润新知