leetcode链接:
https://leetcode.cn/problems/search-insert-position/
方案一
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| int left = 0, right = nums.length - 1; while (left < right) { if (nums[(left + right)/2] > target) { right = (left + right)/2; } else if (nums[(left + right)/2] == target) { return (left + right)/2; } else { left = (left + right)/2 + 1; } }
if (((left + right)/2 == nums.length - 1) && (nums[nums.length - 1] < target)) { return (left + right)/2 + 1; }
return (left + right)/2;
|
代码随想录
https://programmercarl.com/0035.%E6%90%9C%E7%B4%A2%E6%8F%92%E5%85%A5%E4%BD%8D%E7%BD%AE.html
1 2 3 4 5 6 7 8 9 10 11 12 13
| int result = -1; int left = 0, right = nums.length; while (left < right) { if (nums[(left + right) / 2] > target) { right = (left + right) / 2; } else if (nums[(left + right) / 2] == target) { return (left + right) / 2; } else { left = (left + right) / 2 + 1; } }
return result;
|