diff --git a/src/main/java/git/snippet/binarysearch/LeetCode_0035_SearchInsertPosition.java b/src/main/java/git/snippet/binarysearch/LeetCode_0035_SearchInsertPosition.java index 57ec72fb0e183e26632fd9ce475d5fae3973bd59..029a744eac6280c6052c18e4a4621dc5a317cd8c 100644 --- a/src/main/java/git/snippet/binarysearch/LeetCode_0035_SearchInsertPosition.java +++ b/src/main/java/git/snippet/binarysearch/LeetCode_0035_SearchInsertPosition.java @@ -4,34 +4,22 @@ package git.snippet.binarysearch; // 二分查找: 在一个有序数组中,找大于等于某个数最左侧的位置,如果找不到,则返回数组长度 // https://leetcode.com/problems/search-insert-position/ public class LeetCode_0035_SearchInsertPosition { - public static int searchInsert(int[] nums, int target) { - if (nums == null || nums.length < 1) { - return 0; - } - int ans = nums.length; - int l = 0; - int r = nums.length - 1; - while (l <= r) { - int m = l + ((r - l) >> 1); - if (nums[m] == target) { - ans = m; - r = m - 1; - } else if (nums[m] > target) { - ans = m; - r = m - 1; + public int searchInsert(int[] nums, int target) { + int result = nums.length; + int left = 0; + int right = nums.length - 1; + while (left <= right) { + int mid = left + ((right - left) >> 1); + if (nums[mid] == target) { + result = mid; + right = mid - 1; + } else if (nums[mid] < target) { + left = mid + 1; } else { - // nums[m] < target - l = m + 1; + result = mid; + right = mid - 1; } } - return ans; - } - - public static void main(String[] args) { - int[] nums = {1, 3, 5, 6}; - - System.out.println(searchInsert(nums, 5)); - System.out.println(searchInsert(nums, 2)); - System.out.println(searchInsert(nums, 7)); + return result; } }