【leetcode算法-简单】35. 搜索插入位置
【题目描述】
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
示例 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
【解答】
- 解法一:遍历
 
class Solution:
def searchInsert(self, nums: List[int], target: int) -> int:
if target in nums: #如果target存在于nums中
return nums.index(target)
elif target < nums[0]: #如果target比数组第一个元素小
return 0
elif target > nums[-1]: #如果target比数组最后一个元素大
return len(nums)
else:
for i in range(len(nums)-1):
if nums[i] < target and nums[i+1] > target:
return i+1
执行用时:54ms
- 解法二:二分法
 
class Solution:
def searchInsert(self, nums: List[int], target: int) -> int:
size=len(nums)
#特判1
if size==0:
return 0
#特判2:如果target大于最后一个元素
if nums[-1]<target:
return size
left=0
right=size-1
#二分法逻辑判断
while left<right:
mid=left+(right-left)//2 #mid=(left+right)//2 但是(left+right)可能会整型溢出,故换一种写法
if nums[mid]<target:
left=mid+1
else:
assert nums[mid] >= target
right=mid
return left
执行用时:86ms
【leetcode算法-简单】35. 搜索插入位置的更多相关文章
- Leetcode题库——35.搜索插入位置
		
@author: ZZQ @software: PyCharm @file: searchInsert.py @time: 2018/11/07 19:20 要求:给定一个排序数组和一个目标值,在数组 ...
 - leetcode笔记——35.搜索插入位置 - CrowFea
		
0.问题描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 1: 12 输入: [1,3 ...
 - Leetcode之二分法专题-35. 搜索插入位置(Search Insert Position)
		
Leetcode之二分法专题-35. 搜索插入位置(Search Insert Position) 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会 ...
 - Java实现 LeetCode 35 搜索插入位置
		
35. 搜索插入位置 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 1: 输入: [1, ...
 - [leetcode] 35. 搜索插入位置(Java)(二分)
		
35. 搜索插入位置 二分,太简单,没啥好说的 class Solution { public int searchInsert(int[] nums, int target) { if (nums. ...
 - Leetcode 35.搜索插入位置 By Python
		
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 1: 输入: [1,3,5,6], 5 输 ...
 - [LeetCode]35.搜索插入位置(Java)
		
原题地址: search-insert-position 题目描述: 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 请必须使 ...
 - 力扣(LeetCode) 35. 搜索插入位置
		
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 1: 输入: [1,3,5,6], 5 输 ...
 - [LeetCode] Search Insert Position 搜索插入位置
		
Given a sorted array and a target value, return the index if the target is found. If not, return the ...
 
随机推荐
- 第一章  初识Linux  shell
			
Linux 由内核.GNU.桌面环境.应用软件四部分组成 内核基本功能: (1). 管理内存 (2). 管理硬件设备 (3). 管理文件系统 (4). 管理软件程序 GNU:操作系统需要一些工具来执行 ...
 - AtCoder Beginner Contest 133
			
目录 Contest Info Solutions A. T or T B.Good Distance C. Remainder Minimization 2019 D. Rain Flows int ...
 - 微信小程序分页显示
			
<view class="tabNav"> <view wx:for="{{navTab}}" wx:key="index" ...
 - ros平台下python脚本控制机械臂运动
			
在使用moveit_setup_assistant生成机械臂的配置文件后可以使用roslaunch demo.launch启动demo,在rviz中可以通过拖动机械臂进行运动学正逆解/轨迹规划等仿真运 ...
 - grafana 的配置文件,和使用mysql数据库做持久化
			
grafana 配置文件 vim /etc/grafana/grafana.ini 下面有些参数在新版中6.x版本中已经过时,请参考下面官网最新帮助文档为准 https://grafana.com/d ...
 - CodeForces 816E Karen and Supermarket  ——(树形DP)
			
题意:有n件商品,每件商品都最多只能被买一次,且有一个原价和一个如果使用优惠券以后可以减少的价格,同时,除了第一件商品以外每件商品都有一个xi属性,表示买这个商品时如果要使用优惠券必须已经使用了xi的 ...
 - 微信小程序 使用字体图标 iconfont
			
第一步:在阿里巴巴矢量图标库下载需要的图标 地址:https://www.iconfont.cn/ 添加至项目 第二步:打开在线代码 将在线代码复制 第三步:点击下载至本地下载图标 将下载的downl ...
 - mysql中查询某个字段重复的数据
			
SELECT corp_name,count(*) as sums FROM corp_tax WHERE corp_year = 2018 AND corp_month = 8 group by c ...
 - python脚本-excel批量转换为csv文件
			
pandas和SQL数据分析实战视频教程 https://study.163.com/course/courseMain.htm?courseId=1006383008&share=2& ...
 - PorterDuffXfermode之PorterDuff.Mode.DST_IN
			
package com.loaderman.customviewdemo.view; import android.animation.ValueAnimator; import android.co ...