力扣每日一题5

文章目录

  • 前言
  • 一、题目示例
  • 二、代码
  • 三、效果


前言

题目:搜索插入位置。要求:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法


一、题目示例

示例 1:

输入: nums = [1,3,5,6], target = 5
输出: 2
示例 2:

输入: nums = [1,3,5,6], target = 2
输出: 1
示例 3:

输入: nums = [1,3,5,6], target = 7
输出: 4
示例 4:

输入: nums = [1,3,5,6], target = 0
输出: 0
示例 5:

输入: nums = [1], target = 0
输出: 0

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/

二、代码

代码如下(示例):

int searchInsert(int* nums, int numsSize, int target){
    /* target分三种情况
     * 第一种:target小于数组第0个,直接插在数组第0个位置
     * 第二种:target大于数组最后一个,直接插在数组第numsSize个位置
     * 第三种:target大于数组第0个,要么插在数组之间,要么是最后一个
    */
    if(target > nums[numsSize-1]) {
        return numsSize;
    }

    int i = 0;
    if(target < nums[i]) {
        return 0;
    } else {
        while( target > nums[i]) {
            i++;
            if(target == nums[i]) {
                //return i;
                break;
            }
            if( i == numsSize){
                break;
            }
        }
    }
    return i;
}

三、效果

力扣每日一题5_第1张图片


你可能感兴趣的:(C语言,c语言,c算法)