一、题目
二、解题思路
1、我的思路(又称:论API的重要性)
读完题目之后,我心想这题目怎么看着这么眼熟?好像我之前学过的一个API呀!
于是我回去翻了翻我之前写的博客:小白备战蓝桥杯:Java常用API-CSDN博客
翻到Arrays工具类,看到下面这个API……
好家伙,这题直接秒了!
接着我用5行代码解决了这题
int n = Arrays.binarySearch(nums,target);
if(n < 0)
return -n-1;
else
return n;
2、官方题解
看到官方题解我一整个疑惑住了,放着好好的API不用,自己去手写二分查找?
但我也不得不说一句,二分查找确实是一个经典算法,需要积累起来
class Solution {
public int searchInsert(int[] nums, int target) {
int n = nums.length;
int left = 0, right = n - 1, ans = n;
while (left <= right) {
int mid = ((right - left) >> 1) + left;
if (target <= nums[mid]) {
ans = mid;
right = mid - 1;
} else {
left = mid + 1;
}
}
return ans;
}
}
作者:力扣官方题解
链接:https://leetcode.cn/problems/search-insert-position/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。