java数组排序和索引
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
示例 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; }};
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。