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 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
Constraints:
- 1 <= nums.length <= 104
- -104 <= nums[i] <= 104
- nums contains distinct values sorted in ascending order.
- -104 <= target <= 104
Answer:
class Solution {
public int searchInsert(int[] A, int target) {
int low = 0, high = A.length-1;
while(low<=high){
int mid = (low+high)/2;
if(A[mid] == target) return mid;
else if(A[mid] > target) high = mid-1;
else low = mid+1;
}
return low;
}
}
'Algorithms and Data Structures > Coding Practices' 카테고리의 다른 글
LeetCode 367. Valid Perfect Square (0) | 2022.06.09 |
---|---|
LeetCode 852. Peak Index in a Mountain Array (0) | 2022.06.08 |
LeetCode 374. Guess Number Higher or Lower (0) | 2022.06.04 |
LeetCode 704. Binary Search (0) | 2022.06.03 |
CCI 4.3 List of Depths (0) | 2022.06.02 |