LeetCode-搜索插入位置(35)

题目描述:

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

请必须使用时间复杂度为 O(log n) 的算法。
在这里插入图片描述
思路: 给定数组查找指定元素值的索引,如果元素值不存在于数组,就返回被顺序插入位置,并且时间复杂度要求O(log n),那么很自然就能想到使用二分查找,当二分查找找不到元素值时后面再去考虑顺序插入的情况。如果原数组不包括给定的元素值那么就要寻找插入位置,在我看来插入位置分三种情况,第一种指定元素小于等于数组中第一个数,第二种指定元素值大于等于数组最后一个数,第三种就是大于等于前一个数,小于等于后一个数。具体看代码。

代码:

class Solution {public int searchInsert(int[] nums, int target) {int left=0;int right=nums.length-1;while(left<=right) {int mid=(right+left)/2;if(nums[mid]<target) {left=mid+1;} else if(nums[mid]>target) {right=mid-1;} else {return mid;}}for(int i=0;i<nums.length-1;i++) {if(nums[i]<=target&&nums[i+1]>=target) {return i+1;} }if(nums[nums.length-1]<=target) {return nums.length;}return 0;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/338449.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据-hive函数与mysql函数的辨析及练习-将多行聚合成一行

目录 1. &#x1f959;collect_list: 聚合-不去重 2. &#x1f959;collect_set(col): 聚合-去重 3. &#x1f959;mysql的聚合函数-group_concat 4. leetcode练习题 1. &#x1f959;collect_list: 聚合-不去重 将组内的元素收集成数组 不会去重 2. &#x1f959;collec…

【OpenCV学习笔记06】- 制作使用轨迹条控制的调色板

内容 学习将轨迹栏绑定到 OpenCV 窗口。你将学习这些函数&#xff1a;cv.getTrackbarPos(), cv.createTrackbar() 等等。 调色板代码 这里&#xff0c;我们将创建用以显示指定颜色的简单程序。 你有一个显示颜色的窗口和三个轨迹栏&#xff0c;用来指定 B&#xff0c;G&…

界面组件DevExpress WPF v23.2 - 更轻量级的主题支持

DevExpress WPF Subscription拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 DevExp…

wpf的资源路径

1、手动命名空间 xmlns:share"clr-namespace:***;assembly**" 2、资源文件 Pack URI 编译到本地程序集内的资源文件的 pack URI 使用以下授权和路径&#xff1a; 授权&#xff1a;application:///。 路径&#xff1a;资源文件的名称&#xff0c;包括其相对于本地…

QT第1天

题目&#xff1a;点击按钮改变文字 需要增加一个count属性&#xff0c;并且只需要定义槽&#xff0c;信号函数已经内置好了 //widget.h#ifndef WIDGET_H #define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Wi…

【工具使用】VS Code设置字宽垂直标尺

一&#xff0c;简介 在编写代码时&#xff0c;每行写的代码过长&#xff0c;会导致查看代码不方便。所以如果能够有一条线提示宽度就好了&#xff0c;如下图所示&#xff1a; 本文就介绍如何在VS Code中添加这条提示线&#xff0c;供参考。 二&#xff0c;具体方法 settin…

etcd跨主机通信与Flannel

跨主机通信 Docker 默认的网络环境下 , 单台主机上的 Docker 容器可以通过 docker0 网桥直接通信 , 而不同主机上的 Docker 容器之间只能通过在主机上做端口映射进行通信。 这种端口映射方式对很多集群应用来说极不方便。 如果能让 Docker 容器之间直接使用自己的 IP 地址进…

云计算任务调度仿真02

前面已经分享过一个仿真项目&#xff0c;但是基于policy gradient方法实现的&#xff0c;考虑到许多人从零到一实现DQN方法有点难度&#xff0c;所以这次分享一个基于DQN实现的仿真项目&#xff0c;非常简单。 这里之所以简单主要得益于它是用pytorch实现的&#xff0c;而pyto…

京东(天猫淘宝)数据分析工具-鲸参谋系统全功能解析——行业大盘、红蓝海市场、品牌分析、店铺分析、商品分析、竞品监控(区分自营和POP)

作为第三方电商数据平台&#xff0c;鲸参谋电商大数据系统能够为品牌方和商家提供包括行业趋势、热门品牌、店铺分析、单品分析在内的多个层面数据分析&#xff0c;帮助商家做出更加准确的经营决策&#xff0c;提升经营效率&#xff0c;实现精准营销。 下面&#xff0c;我们针…

“编程语言大比拼:Python、JavaScript、Java与C#的优劣与选择“。

以下是一篇关于不同编程语言特性的比较和选择的文章。 在当今的编程世界中&#xff0c;有许多种不同的编程语言可供选择。每种语言都有其独特的特性和优点&#xff0c;这使得选择最适合特定项目的语言变得复杂。本文将比较几种流行的编程语言&#xff0c;以帮助您了解它们的特…

gem5学习(11):将缓存添加到配置脚本中——Adding cache to the configuration script

目录 一、Creating cache objects 1、Classic caches and Ruby 二、Cache 1、导入SimObject(s) 2、创建L1Cache 3、创建L1Cache子类 4、创建L2Cache 5、L1Cache添加连接函数 6、为L1ICache和L1DCache添加连接函数 7、为L2Cache添加内存侧和CPU侧的连接函数 完整代码…

机器学习---流形学习

1. 流形学习 作为机器学习研究的热点问题之一&#xff0c;流形学习是要从高维数据集中发现内在的低维流形&#xff0c;并基于低 维流形来实现随后的各种机器学习任务&#xff0c;如模式识别&#xff0c;聚类分析。与欧氏空间不同&#xff0c;流形学习主要 处理的是非欧空间里…