LeetCode 35. Search Insert Position
原题链接在这里:https://leetcode.com/problems/search-insert-position/description/
题目:
Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.
You may assume no duplicates in the array.
Here are few examples.[1,3,5,6]
, 5 → 2[1,3,5,6]
, 2 → 1[1,3,5,6]
, 7 → 4[1,3,5,6]
, 0 → 0
题解:
二分法查找,若是loop中找到了就返回mid, 若是没有找到,跳出loop时,恰巧 l 会走到比target 大的index上, r会走到比target小的index上。
Time Complexity: O(log n). Space O(1).
AC Java:
1 public class Solution { 2 public int searchInsert(int[] nums, int target) { 3 if(nums == null){ 4 throw new IllegalArgumentException("Invalid input array."); 5 } 6 7 int l = 0; 8 int r = nums.length-1; 9 while(l<=r){ 10 int mid = l + (r-l)/2; 11 if(nums[mid] > target){ 12 r = mid-1; 13 }else if(nums[mid] < target){ 14 l = mid+1; 15 }else{ 16 return mid; 17 } 18 } 19 return l; 20 } 21 }
跟上Find First and Last Position of Element in Sorted Array, First Bad Version.
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
· Linux系列:如何调试 malloc 的底层源码
· JDK 24 发布,新特性解读!
· C# 中比较实用的关键字,基础高频面试题!
· .NET 10 Preview 2 增强了 Blazor 和.NET MAUI
· Ollama系列05:Ollama API 使用指南
· 为什么AI教师难以实现