/**************************************************************************
*
* 35. [Search Insert Position](https://leetcode.com/problems/search-insert-position/)
*
* Given a sorted array of distinct integers 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.
*
* nums contains distinct values sorted in ascending order.
* You must write an algorithm with O(log n) runtime complexity.
*
* Example 1:
* Input: nums = [1,3,5,6], target = 5
* Output: 2
*
* Example 2:
* Input: nums = [1,3,5,6], target = 2
* Output: 1
*
* Example 3:
* Input: nums = [1,3,5,6], target = 7
* Output: 4
**************************************************************************/
int searchInsert(int* nums, int numsSize, int target){
if (NULL == nums || numsSize <= 0) return -1;
int left = 0;
int right= numsSize - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (nums[mid] == target) return mid;
else if (nums[mid] < target) left = mid + 1;
else right = mid - 1;
}
return left;
}