LeetCode 35. Search Insert Position 在一个升序数组中找到目标数应插入的位置

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.

Example 1:

Input: [1,3,5,6], 5
Output: 2

Example 2:

Input: [1,3,5,6], 2
Output: 1

Example 3:

Input: [1,3,5,6], 7
Output: 4

Example 4:

Input: [1,3,5,6], 0
Output: 0

二分法

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

LeetCode 35. Search Insert Position 在一个升序数组中找到目标数应插入的位置_第1张图片

你可能感兴趣的:(LeetCode)