题目描述题目直接截图于力扣(LeetCode)。 该题网址:https:///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 |
|