[算法]LeetCode 专题 -- 二分查找专题 34. 在排序数组中查找元素的第一个和最后一个位置
LeetCode 专题 – 二分查找专题
34. 在排序数组中查找元素的第一个和最后一个位置
难度:中等
题目描述
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
你的算法时间复杂度必须是 O(log n) 级别。
如果数组中不存在目标值,返回 [-1, -1]。
示例 1:
输入: nums = [5,7,7,8,8,10], target = 8
输出: [3,4]
示例 2:
输入: nums = [5,7,7,8,8,10], target = 6
输出: [-1,-1]
链接:
https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array
Solution
class Solution {public int[] searchRange(int[] nums, int target) {int[] res = {-1, -1};int n = nums.length;// 第一个int low = 0, high = nums.length - 1;while(low <= high){int mid = low + (high - low) / 2;if(nums[mid] == target){if(mid == 0 || nums[mid - 1] != target) {res[0] = mid;break;}else high = mid - 1;}else if(nums[mid] > target) high = mid - 1;else if(nums[mid] < target) low = mid + 1;}// 最后一个low = 0;high = nums.length - 1;while(low <= high){int mid = low + (high - low) / 2;if(nums[mid] == target){if(mid == n - 1 || nums[mid + 1] != target){res[1] = mid;break;}else low = mid + 1;}else if(nums[mid] > target) high = mid - 1;else if(nums[mid] < target) low = mid + 1;}return res;}
}
[算法]LeetCode 专题 -- 二分查找专题 34. 在排序数组中查找元素的第一个和最后一个位置相关推荐
- LeetCode (二分小专题)33搜索旋转排序数组34在排序数组中查找元素的第一个和最后一个位置35搜索插入位置
前言 国庆前最后一次打卡,国庆后继续开启,公众号bigsai回复进群欢迎加入打卡,如有帮助记得点赞收藏. 近期打卡记录: LeetCode 32最长有效括号(困难) (本周) LeetCode 30串 ...
- 去掉数组最后一个元素_leetcode 34. 在排序数组中查找元素的第一个和最后一个位置每天刷一道leetcode算法系列!...
作者:reed,一个热爱技术的斜杠青年,程序员面试联合创始人 前文回顾: leetcode1. 两数之和--每天刷一道leetcode系列! leetcode2. 两数相加--每天刷一道leetcod ...
- 34. 在排序数组中查找元素的第一个和最后一个位置
34. 在排序数组中查找元素的第一个和最后一个位置(两种方法记录) 法一(BP算法--使用双指针分别从前.后定位first index和last index),代码如下: class Solution ...
- 34. 在排序数组中查找元素的第一个和最后一个位置——二分法的魔鬼细节 小记
每次遇到二分法,一看就会,一写就废,在力扣上看到一篇很好的总结,因此做一下搬运工 参考题解--二分法各种情况及细节剖析,附送小诗一首 场景包括寻找一个数.寻找左侧边界.寻找右侧边界. 而且,我们就是要 ...
- 34. 在排序数组中查找元素的第一个和最后一个位置给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标
34. 在排序数组中查找元素的第一个和最后一个位置 难度中等2012 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target.请你找出给定目标值在数组中的开始位置和结束位置. 如果 ...
- 34. 在排序数组中查找元素的第一个和最后一个位置 golang
34. 在排序数组中查找元素的第一个和最后一个位置 https://leetcode-cn.com/problems/find-first-and-last-position-of-element-i ...
- leetcode(34)在排序数组中查找元素的第一个和最后一个位置
在排序数组中查找元素的第一个和最后一个位置 class Solution {public int[] searchRange(int[] nums, int target) {int len = nu ...
- 62. Leetcode 34. 在排序数组中查找元素的第一个和最后一个位置 (二分查找-局部有序)
给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置.如果数组中不存在目标值 target,返回 [-1, -1].进阶:你可以设计并实现时 ...
- leetcode 34. 在排序数组中查找元素的第一个和最后一个位置(二分查找)
给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置. 如果数组中不存在目标值 target,返回 [-1, -1]. 进阶: 你可以设计并 ...
最新文章
- OkHttp源码分析
- mysql基础什么意思,Mysql一些基本概念
- java接口如何定义常量 c_在Java接口中怎样访问定义的常量呢?
- “输入字符不是 MATLAB 语句或表达式中的有效字符”的解决办法
- python之列表、字典、集合
- 如何使用 Jenkins、GitHub 和 Docker 在 Azure 中的 Linux VM 上创建开发基础结构
- PHP base64
- C++ 继承关系图 01
- linux缓存文件用户权限错误,Laravel运行缓存权限问题
- STM32F103:二.(3)DHT11温湿度
- 拦截方法并替换成自己的方法
- Qt5学习笔记之bin文件合成工具四:完善功能打包程序
- 高斯分布matlab程序,生成高斯分布的matlab程序
- [基础控件]---状态切换控件CompoundButton及其子类CheckBox、RadioButton、ToggleButton、switch事件监听与场景使用...
- Spring Configuration Check Unmapped Spring configuration files found.Please configure Spring facet.
- 联合国可持续发展目标,中国大数据服务支持
- 【问链财经-区块链基础知识系列】 第二十课 区块链联盟链攻伐战
- Python爬取天天基金网历史数据
- Java中找出缺失的数字
- 人工智能知识图谱研究