您的位置:首页 > 娱乐 > 八卦 > 鞍山云疫情最新_餐饮管理系统设计_泉州百度竞价开户_他达拉非片

鞍山云疫情最新_餐饮管理系统设计_泉州百度竞价开户_他达拉非片

2025/2/23 6:23:21 来源:https://blog.csdn.net/qq_45964225/article/details/144980171  浏览:    关键词:鞍山云疫情最新_餐饮管理系统设计_泉州百度竞价开户_他达拉非片
鞍山云疫情最新_餐饮管理系统设计_泉州百度竞价开户_他达拉非片

解析

时间复杂度要求,所以使用二分的思想,漏掉了很多问题,这里记录

  1. 在left-right=1时,已经找到了插入位置,但是没有赋值,然后break,所以导致一直死循环。
    if(right - left == 1){result = right;break;
    }

  2. 在和最右侧数比较时,漏掉了相等时就直接找到,所以在数组是[1,3],target=1时,应该返回下标0
    if(target <= nums[left]){result = left;break;
    }               

  3. 长度为0时,不进入循环了,所以循环条件是left <= right。

代码

class Solution {
public:int searchInsert(vector<int>& nums, int target) {int left = 0;int right = nums.size()-1;int result = 0;while(left <= right){int mid = (left+right)/2;if(target <= nums[left]){result = left;break;}if( nums[right] < target){result = right+1;break;}if( nums[right] == target){result = right;break;}if(right - left == 1){result = right;break;}if(nums[mid] < target){left = mid;}else if(target < nums[mid]){right = mid;}else if(nums[mid] == target){result = mid;break;}}return result;}
};

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com