LeetCode力扣每日一题(Java):35、搜索插入位置

2023-12-15 09:53:23

一、题目

二、解题思路

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)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

文章来源:https://blog.csdn.net/lbcbjtlhmjq/article/details/134923136
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。