题目描述

题目直接截图于力扣(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.cnblogs.com/static-love/p/14285575.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!