063搜索插入位置 搜索插入位置题目链接https://leetcode.cn/problems/search-insert-position/description/?envTypestudy-plan-v2envIdtop-100-liked我的解答public int searchInsert(int[] nums, int target) { int l 0, r nums.length - 1; while(l r){ int m (l r) / 2; if(target nums[m]){ r m - 1; } else if(target nums[m]){ l m 1; } else{ return m; } } return l; }分析代码的时间复杂度为O(logn)空间复杂度为O(1)。解题思路二分查找。看了官方题解后的解答public int searchInsert(int[] nums, int target) { int l 0, r nums.length - 1; while(l r){ int m l ((r - l) 1);//避免lr过大导致溢出 if(target nums[m]){ r m - 1; } else{ l m 1; } } return r 1; }分析​ 1、代码的时间复杂度为O(logn)空间复杂度为O(1)。​ 2、解题思路与我的解答一致。但是官方在计算中间位置的索引时进行了优化将m (l r) / 2优化为了m l ((r - l) 1)可以避免lr过大时带来的溢出问题。另外将三层if…else语句改为了两层。总结本题主要考察二分查找。