查找

    1. 大于等于
    2. 大于
    3. 小于等于
    4. 小于

    target值时的二分查找通用规律

    核心思想: 要找某个值, 则查找时遇到该值时, 当前指针(例如right指针)要错过它, 让另外一个指针(left指针)跨过他(体现在left <= right中的=号), 则找到了

    1. /**
    2. * 范围查询规律
    3. * 初始化:
    4. * int left = 0;
    5. * int right = nums.length - 1;
    6. * 循环条件
    7. * left <= right
    8. * 右边取值
    9. * right = mid - 1
    10. * 左边取值
    11. * left = mid + 1
    12. * 查询条件
    13. * >= target值, 则 nums[mid] >= target时, 都减right = mid - 1
    14. * > target值, 则 nums[mid] > target时, 都减right = mid - 1
    15. * <= target值, 则 nums[mid] <= target时, 都加left = mid + 1
    16. * < target值, 则 nums[mid] < target时, 都加left = mid + 1
    17. * 结果
    18. * 求大于(含等于), 返回left
    19. * 求小于(含等于), 返回right
    20. * 示例(求> 或 >=)
    21. * private int search(int[] nums, int target) {
    22. * int left = 0;
    23. * int right = nums.length - 1;
    24. * while (left <= right){
    25. * int mid = (right - left) / 2 + left;
    26. * if (nums[mid] 查询条件 target){
    27. * right = mid - 1;
    28. * } else {
    29. * left = mid + 1;
    30. * }
    31. * }
    32. * return left(根据查询条件确认);
    33. * }
    34. * 核心思想: 要找某个值, 则查找时遇到该值时, 当前指针(例如right指针)要错过它, 让另外一个指针(left指针)跨过他(体现在left <= right中的=号), 则找到了
    35. */
    36. 作者:chendragon
    37. 链接:https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/solution/er-fen-cha-zhao-tong-yong-gui-lu-gu-ding-g93u/
    38. 来源:力扣(LeetCode
    39. 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。