确定用左闭右开的区间表示。 [a,b)
    这种表示,a==b是没有意义的

    做一题,

    • [ ] 704.二分查找 :::info 前提:

    • 有序数组

    • 无重复元素 ::: 代码:(详细注释)

      1. //O(logn)
      2. class Solution {
      3. public:
      4. int search(vector<int>& nums, int target) {
      5. int l = 0;
      6. int r = nums.size();
      7. while (l<r) //这里等于是没有意义的
      8. {
      9. int mid = l + ((r - l) >> 1); //注意这个符号方向
      10. if(nums[mid]<target)
      11. l = mid + 1;
      12. else if(target<nums[mid])
      13. r = mid;
      14. else
      15. return mid;
      16. }
      17. return -1; //没有意义代表查找失败
      18. }
      19. };

      分析:
      经典二分查找算法

    • [ ] 35.搜索插入位置 :::info 前提:

    • 有序数组

    • 无重复元素 ::: 代码:(详细注释)
      //暴力法 O(n)
      class Solution {
      public:
        int searchInsert(vector<int>& nums, int target) {
            for (size_t i = 0; i < nums.size(); ++i)
            {
                //这一段能够处理三种情况
                //target在数组最前面
                //target等于数组中某一个元素
                //target插入数组的位置
                if(nums[i]>=target)
                    return i;
            }
            //处理最后一种情况,target在数组最后面
            return nums.size();
        }
      };
      
      ```cpp //二分法 O(logn) //跟704一致,唯一的不同就是把返回-1改成返回r

    ```

    分析:
    是704的一个进阶。
    暴力法,是因为这个情况是可以穷举的。