class Solution { /** * 第一個大於等於n的元素位置 * @param nums * @param target * @return */ private int lowerBound(int[] nums, int target) { int size = nums.length; int l = 0; while (size > 0) { int half = size >> 1; int m = l + half; if (nums[m] < target) { size = size - half - 1; l = m + 1; } else { size = half; } } return l; } /** * 第一個大於n的元素位置 * @param nums * @param target * @return */ private int upperBound(int[] nums, int target) { int size = nums.length; int l = 0; while (size > 0) { int half = size >> 1; int m = l + half; if (nums[m] <= target) { size = size - half - 1; l = m + 1; } else { size = half; } } return l; } public int searchInsert(int[] nums, int target) { return lowerBound(nums, target); } }
LeetCode - 35. 搜索插入位置
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.