Problem
Search Insert Position - LeetCode
Problem Solving Approach
- The given problem deals with a sorted array.
- The condition is to solve it in O(log n) time complexity.
- The only method to achieve this in a sorted list is Binary Search.
- This problem tests your understanding of Binary Search and its implementation.
- When implementing Binary Search, you need to decide whether to use recursion or iteration.
- Since this problem does not require previous results or sub-problems, it is more effective to implement it using iteration.
- When the target value is not found, the function should return the index where the target should be inserted.
- The function returns 'low' value because it is closer to the target than 'high', where 'mid' is unchanged and 'mid' divided by 2 and floored is less than or equal to 'high'.
Github Link
https://github.com/eunhanlee/LeetCode_35_SearchInsertPosition_Solution.git
Time Complexity: O(log n), Space Complexity: O(1)
class Solution {
/**
* Search for the insertion position of the target value in the given sorted array.
*
* @param nums Sorted integer array.
* @param target Value to search for.
* @return The index where the target should be inserted.
*/
public int searchInsert(int[] nums, int target) {
int low = 0;
int high = nums.length - 1;
while (low <= high) {
int mid = low + (high - low) / 2;
if (nums[mid] == target)
return mid; // Return the index if the target value exists.
else if (nums[mid] < target)
low = mid + 1; // Move to the right half if the target is greater than the current middle value.
else
high = mid - 1; // Move to the left half if the target is less than the current middle value.
}
// If the loop exits, it means the target does not exist in the array, and 'low' indicates the insertion position.
return low;
}
}
댓글 없음:
댓글 쓰기