2026/1/2 23:32:54
网站建设
项目流程
大连网站开发建站,群辉怎么做网站服务器,建设工程检测预约网站,wordpress小绿锁题目描述#xff1a;题目分析#xff1a;本题是一个二分查找#xff0c;核心思路是通过计算中心点和目标值的大小关系#xff0c;以此在一个while循环里不断更新左右端点#xff0c;知道左端点大于右端点。代码#xff1a;class Solution {public int searchInsert(int[]…题目描述题目分析本题是一个二分查找核心思路是通过计算中心点和目标值的大小关系以此在一个while循环里不断更新左右端点知道左端点大于右端点。代码class Solution { public int searchInsert(int[] nums, int target) { int nnums.length; int rightn-1; int left0; while(leftright){ int mid(right-left)/2left; if(targetnums[mid]){ leftmid1; }else{ rightmid-1; } } return left; } }代码要点分析1.中心点的计算为mid(right-left)/2left这样做是为了防止整数溢出。2.leftright,若目标值存在于数组中最后一个可能的left和right是相同的left right会错过一些情况。具体来说在left right时依然需要检查这个位置。3.不必判断targetnums[mid]的情况在targetnums[mid]时直接把mid更新为right-1如果后续范围数组里还有target那么二分查找依旧能查找到范围里的target如果这已经是最左边的target那么随后循环里就会出现targetnums[mid]的情况此时left就会不断右移知道nums[left]target。