当前位置: 首页 > news >正文

【31.在排序数组中查找元素的第一个和最后一个位置】

给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。

如果数组中不存在目标值 target,返回 [-1, -1]。

你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。

示例 1:

输入:nums = [5,7,7,8,8,10], target = 8
输出:[3,4]
示例 2:

输入:nums = [5,7,7,8,8,10], target = 6
输出:[-1,-1]
示例 3:

输入:nums = [], target = 0
输出:[-1,-1]
 

提示:

0 <= nums.length <= 105
-109 <= nums[i] <= 109
nums 是一个非递减数组
-109 <= target <= 109

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

http://www.lryc.cn/news/68174.html

相关文章:

  • 如何构建“Buy Me a Coffee”DeFi dApp
  • Redis 实战篇:巧用 Bitmap 实现亿级海量数据统计
  • 3 天,入门 TAURI 并开发一个跨平台 ChatGPT 客户端
  • 14个最佳创业企业WordPress主题
  • MySQL基础(三十)PowerDesigner的使用
  • nginx 服务器总结
  • 基于Hebb学习的深度学习方法总结
  • 思科模拟器 | 访问控制列表ACL实现网段精准隔绝
  • Python os模块详解
  • Oracle PL/SQL基础语法学习13:比较运算符
  • 金仓数据库适配记录
  • ElasticSearch 学习 ==ELK== 进阶
  • 【数据结构 -- C语言】 双向带头循环链表的实现
  • 自然语言处理与其Mix-up数据增强方法报告
  • Vue(组件化编程:非单文件组件、单文件组件)
  • 【MATLAB数据处理实用案例详解(22)】——基于BP神经网络的PID参数整定
  • 第11章 项目人力资源管理
  • 07-Vue技术栈之(组件之间的通信方式)
  • 度量学习Metirc Learning和基于负例的对比学习Contrastive Learning的异同点思考
  • 3.编写油猴脚本之-helloword
  • openwrt的openclash提示【更新失败,请确认设备闪存空间足够后再试】
  • torch.nn.Module
  • 论文解析-基于 Unity3D 游戏人工智能的研究与应用
  • 6、Flutterr聊天界面网络请求
  • Java 8 腰斩!Java 17 暴涨 430%!!(文末福利)
  • 如何手写一个支持H.265的高清播放器
  • Day 1 认识软件测试——(软件测试定义、目的、原则)
  • Docker Harbor
  • 第三十四章 Unity人形动画(上)
  • 计算机图形学-GAMES101-7