给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
示例 1:
输入: [1,3,5,6], 5
输出: 2
代码实现
class Solution {
public:
int searchInsert(vector<int>& nums, int target) {
int begin = 0;
int end = nums.size()-1;
int index = -1;
while(index == -1)
{
int mid = (begin + end) / 2;
if(nums[mid] == target)
index = mid;
else if(target < nums[mid])
{
if(mid == 0 || target > nums[mid - 1] ) //先判断mid的值,,顺序不能反
index = mid;
end = mid - 1;
}
else if(target > nums[mid])
{
if( mid == nums.size()-1 ||target < nums[mid + 1] )
index = mid + 1;
begin = mid + 1;
}
}
return index;
}
};
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
当前标题:java数组排序和索引-创新互联
当前链接:https://www.cdcxhl.com/article20/csgoco.html
成都网站建设公司_创新互联,为您提供网站设计公司、虚拟主机、动态网站、品牌网站制作、微信公众号、微信小程序
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联