目录
1.题目
- 1.题目
- 2.思路
- 3.代码实现(Java)
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。
示例 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
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/search-insert-position
2.思路当目标元素 target 不存在数组 nums 中时,搜索左侧边界的⼆分搜索的返回值可以从以下三个方面进行解释: ① 返回值是 nums 中大于等于 target 的最小元素索引; ② 返回值是 target 应该插入在 nums 中的索引位置; ③ 返回值是 nums 中小于 target 的元素个数;
比如在有序数组 nums = [1,3,5,6] 中搜索 target = 2,搜索左边界的二分算法会返回 1,带入上面的解释,都是对的。故以上三种解释都是等价的,可以根据具体题目场景灵活运用,显然这里是第⼆种。
3.代码实现(Java)class Solution {
public int searchInsert(int[] nums, int target) {
int left = 0;
int right = nums.length - 1;
while (left
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?