Leetcode 35.搜索插入位置 By Python
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
示例 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
思路
- python的list是有
index()
方法的,如果目标值在数组中就很简单 - 如果没有的话就从头线性扫描一遍,当然更好的做法是二分找位置
代码
class Solution:
def searchInsert(self, nums: List[int], target: int) -> int:
try:
index_value = nums.index(target)
return index_value
except:
length = len(nums)
for i in range(length):
if nums[i] > target and i > 0:
return i
if nums[i] > target and i == 0:
return 0
if nums[i] < target and i == length-1:
return length
# 二分法
class Solution:
def searchInsert(self, nums: List[int], target: int) -> int:
length = len(nums)
if length == 0:
return 0
left = 0
right = length
while left < right:
mid = (left + right) // 2
if nums[mid] < target: # 此时已经排除mid位置是答案的可能性
left = mid + 1
else:
right = mid
return left
精选题解里有教二分法模板,说的很棒,强烈推荐
注明
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/search-insert-position
Leetcode 35.搜索插入位置 By Python的更多相关文章
- Java实现 LeetCode 35 搜索插入位置
35. 搜索插入位置 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 1: 输入: [1, ...
- [leetcode] 35. 搜索插入位置(Java)(二分)
35. 搜索插入位置 二分,太简单,没啥好说的 class Solution { public int searchInsert(int[] nums, int target) { if (nums. ...
- [LeetCode]35.搜索插入位置(Java)
原题地址: search-insert-position 题目描述: 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 请必须使 ...
- Leetcode之二分法专题-35. 搜索插入位置(Search Insert Position)
Leetcode之二分法专题-35. 搜索插入位置(Search Insert Position) 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会 ...
- leetcode笔记——35.搜索插入位置 - CrowFea
0.问题描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 1: 12 输入: [1,3 ...
- 力扣(LeetCode) 35. 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 1: 输入: [1,3,5,6], 5 输 ...
- Leetcode题库——35.搜索插入位置
@author: ZZQ @software: PyCharm @file: searchInsert.py @time: 2018/11/07 19:20 要求:给定一个排序数组和一个目标值,在数组 ...
- 【leetcode算法-简单】35. 搜索插入位置
[题目描述] 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 1: 输入: [1,3,5, ...
- Leecode刷题之旅-C语言/python-35.搜索插入位置
/* * @lc app=leetcode.cn id=35 lang=c * * [35] 搜索插入位置 * * https://leetcode-cn.com/problems/search-in ...
随机推荐
- C#写入文件内容时提示:文件正被另一个人或程序使用
创建文件后未将文件关闭 string sTransLogFile = sTransLogPath + "\\" + DateTime.Now.ToString("yyyy ...
- linux运维、架构之路-K8s通过Service访问Pod
一.通过Service访问Pod 每个Pod都有自己的IP地址,当Controller用新的Pod替换发生故障的Pod时,新Pod会分配到新的IP地址,例如:有一组Pod对外提供HTTP服务,它们的I ...
- C# 获取应用程序几种方式的区别
// 获取程序的基目录.System.AppDomain.CurrentDomain.BaseDirectory 这种方式 无论什么权限 获取的也只是应用程序的启动路径 // 获取模块 ...
- pika 与 rabbitMQ 阻塞连接
之前只是用celery, 这次用一下pika 参考rabbitMQ官网的python版,https://www.rabbitmq.com/tutorials/tutorial-one-python.h ...
- android 支持发送空短信
method:A) AP端修改:1.将ComposeMessageActivity.java 中的 isPreparedForSending() 作如下修改(删掉的code也可以注释掉)private ...
- Selenium 文件下载
点击文件下载时,弹出的那个框,webdriver是定位不到的,只有通过第三方工具或方法来操作 一.通过PyUserInput模拟键盘按键下载 PyUserInput是模拟鼠标和键盘的一个模块,替代了p ...
- R_针对churn数据用id3、cart、C4.5和C5.0创建决策树模型进行判断哪种模型更合适
data(churn)导入自带的训练集churnTrain和测试集churnTest 用id3.cart.C4.5和C5.0创建决策树模型,并用交叉矩阵评估模型,针对churn数据,哪种模型更合适 决 ...
- 四图3d旋转轮播
<!DOCTYPE html><html><head><meta charset="utf-8" /><title>3d ...
- perl基础-1
基础 向函数中传递两个数组,使用指针 sub getSql{(my a,my b)=@_;my @array=@$a;} my @a;my @b; getSql(\@a,\@b); length($s ...
- @Configuration与@Bean
1,@Configuration与@Bean @Configuration: 告诉Spring这是一个配置类,配置类==配置文件. @Configuration==beans.xml @Bean: ...