題目描述題目直接截圖于力扣(LeetCode)。 該題網(wǎng)址:https:///problems/search-insert-position/ 用到的算法思想二分法、蠻力法 思路蠻力法自然不必多說,遍歷就行。 有序隊(duì)列是使用二分法的基礎(chǔ)。使用二分法需要注意每次標(biāo)動(dòng)移動(dòng)的邊界,在左標(biāo)兵右移時(shí)mid需要+1, 右標(biāo)兵左移時(shí)mid需要-1。但貌似這道題中蠻力法和二分法執(zhí)行速度差不了多少。 代碼(C)1、蠻力法 1 int searchInsert(int* nums, int numsSize, int target){
2 int i;
3 for(i = 0; i < numsSize; i++)
4 {
5 if(nums[i] >= target) // ==是返回的底限,如果大于則表示之后沒有等于,所以直接返回。
6 {
7 return i;
8 }
9 }
10 return i;
11 }
2、二分法 int searchInsert(int* nums, int numsSize, int target){
int left=0, right=numsSize-1;
int mid;
while(left <= right)
{
mid = (left + right) / 2;
if(nums[mid] == target)
{
return mid;
}
else if(nums[mid] < target)
{
left = mid+1;
}
else
{
right = mid-1;
}
}
return left;
}
完成時(shí)間2021-01-16 12:50:50 |
|