首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >LeetCode 训练场:35. 搜索插入位置

LeetCode 训练场:35. 搜索插入位置

作者头像
村雨遥
发布2022-06-16 08:19:13
发布2022-06-16 08:19:13
2900
举报
文章被收录于专栏:JavaParkJavaPark

1. 题目

35. 搜索插入位置

2. 描述

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 示例 1: 输入: [1,3,5,6], 5 输出: 2 示例 2: 输入: [1,3,5,6], 2 输出: 1 示例 3: 输入: [1,3,5,6], 7 输出: 4 示例 4: 输入: [1,3,5,6], 0 输出: 0

3. 思路

首先对目标值进行判断,可以分为以下三种情况

  1. 若是小于数组最小值,则插入位置索引为 0
  2. 若大于数组最大值,则插入位置索引为 nums.length
  3. 若是介于最大值和最小值之间,则插入位置为 i + 1

此时主要进行判断操作和遍历操作,所以最终时间复杂度为

O(n)

.

4. 实现

代码语言:javascript
复制
public int searchInsert(int[] nums, int target) {
    int index = 0;

    // 小于最小数,则插入最开始
    if (target < nums[0]) {
        index = 0;
    } else if (target > nums[nums.length - 1]) {
        // 大于最大数,则插入最后
        index = nums.length;
    } else {
        // 介于之间,则插入位置 i + 1
        for (int i = 0; i < nums.length; i++) {
            if (target == nums[i]) {
                index = i;
            } else if (target > nums[i] && target < nums[i + 1]) {
                index = i + 1;
            }
        }
    }

    return index;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-07-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 题目
  • 2. 描述
  • 3. 思路
  • 4. 实现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档