LeetCode34. 在排序数组中查找元素的第一个和最后一个位置(二分查找)
题目描述
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
你的算法时间复杂度必须是 O(log n) 级别。
如果数组中不存在目标值,返回 [-1, -1]。
思路
详见链接
代码
class Solution:def searchRange(self, nums: List[int], target: int) -> List[int]:size = len(nums)if size == 0:return [-1,-1]first_position = self.__find_first_position(nums,size,target)if first_position == -1:return [-1,-1]last_position = self.__find_last_position(nums,size,target)return [first_position, last_position]def __find_first_position(self,nums,size,target):left = 0right = size - 1while left < right:mid = (left + right) >> 1if nums[mid] < target:left = mid + 1else:right = midif nums[left] == target:return leftelse:return -1def __find_last_position(self,nums,size,target):left = 0right = size - 1while left < right:mid = (left + right + 1) >> 1if nums[mid] > target:right = mid - 1else:left = midreturn left
LeetCode34. 在排序数组中查找元素的第一个和最后一个位置(二分查找)相关推荐
- 62. Leetcode 34. 在排序数组中查找元素的第一个和最后一个位置 (二分查找-局部有序)
给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置.如果数组中不存在目标值 target,返回 [-1, -1].进阶:你可以设计并实现时 ...
- 20200221:在排序数组中查找元素的第一个和最后一个位置(leetcode34)
在排序数组中查找元素的第一个和最后一个位置 题目 思路与算法 代码实现 题目 思路与算法 题目要求了算法复杂度为O(logN),因此必须是二分查找来实现,但是其实最简单的思路应该就是顺序和逆序的遍历了 ...
- 算法----- 在排序数组中查找元素的第一个和最后一个位置
题目: 在排序数组中查找元素的第一个和最后一个位置给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置.你的算法时间复杂度必须是 O(log ...
- python 在排序数组中查找元素的第一个和最后一个位置
在排序数组中查找元素的第一个和最后一个位置 给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置.如果数组中不存在目标值 target,返回 ...
- LeetCode (二分小专题)33搜索旋转排序数组34在排序数组中查找元素的第一个和最后一个位置35搜索插入位置
前言 国庆前最后一次打卡,国庆后继续开启,公众号bigsai回复进群欢迎加入打卡,如有帮助记得点赞收藏. 近期打卡记录: LeetCode 32最长有效括号(困难) (本周) LeetCode 30串 ...
- leetcode(34)在排序数组中查找元素的第一个和最后一个位置
在排序数组中查找元素的第一个和最后一个位置 class Solution {public int[] searchRange(int[] nums, int target) {int len = nu ...
- 34. 在排序数组中查找元素的第一个和最后一个位置 golang
34. 在排序数组中查找元素的第一个和最后一个位置 https://leetcode-cn.com/problems/find-first-and-last-position-of-element-i ...
- 去掉数组最后一个元素_leetcode 34. 在排序数组中查找元素的第一个和最后一个位置每天刷一道leetcode算法系列!...
作者:reed,一个热爱技术的斜杠青年,程序员面试联合创始人 前文回顾: leetcode1. 两数之和--每天刷一道leetcode系列! leetcode2. 两数相加--每天刷一道leetcod ...
- 力扣——在排序数组中查找元素的第一个和最后一个位置
在排序数组中查找元素的第一个和最后一个位置 给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置. 如果数组中不存在目标值 target,返 ...
- [算法]LeetCode 专题 -- 二分查找专题 34. 在排序数组中查找元素的第一个和最后一个位置
LeetCode 专题 – 二分查找专题 34. 在排序数组中查找元素的第一个和最后一个位置 难度:中等 题目描述 给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值 ...
最新文章
- Python基础01-Python环境搭建与HelloWorld
- 某程序员吐槽:分手一个月,发现前女友和一个已婚男人在一起,愤而向他们公司举报,该男已被开除!网友:举报别人不道德!...
- SimpleDelegate 委托
- 巧用row_number和partition by分组取top数据
- 几大科技公司在VR方面的布局是怎么样的?
- sql 增加链接服务器,SQL server利用脚本添加链接服务器,可设置别名
- 36篇博文带你学完opencv :python3+opencv学习笔记汇总目录(基础版)
- Java反梯形图案_梯形法求定积分(一)设计梯形法求积分的类模板,梯形法
- cascade sqlite 数据库_ON DELETE CASCADE无法正常工作在ios中的sqlite3中
- 华为鸿蒙理性,华为的理性,鸿蒙的节奏
- 2020软件测试最新视频教程大合集汇总
- FTP上传失败报错227 Entering Passive Model (222,111,8,111,10,40)
- linux系统安装SAI吗,求救~~~把linux安装到C盘了
- 栈的主要特点及实例应用
- 欧姆龙plc学习笔记(七)
- CodeCademy | Python | 6. Pyglatin
- 台式计算机用什么电源线,台式机电源怎么选 台式机主机电源如何选择【详解】...
- pytorch 欧式距离 euclidean distance 实现
- 企业是否需要引入OA系统要考虑的几个问题
- Ubuntu18.04 仿mac美化