題目描述
題目直接截圖于力扣(LeetCode),
該題網址:https://leetcode-cn.com/problems/search-insert-position/

用到的演算法思想
二分法、蠻力法
思路
蠻力法自然不必多說,遍歷就行,
有序佇列是使用二分法的基礎,使用二分法需要注意每次標動移動的邊界,在左標兵右移時mid需要+1, 右標兵左移時mid需要-1,但貌似這道題中蠻力法和二分法執行速度差不了多少,
代碼(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;
}
完成時間
2021-01-16 12:50:50
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/249740.html
標籤:其他
