LeetCode如何在排序数组中查找元素的第一个和最后一个位置
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章主要介绍LeetCode如何在排序数组中查找元素的第一个和最后一个位置,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一,在排序数组中查找元素的第一个和最后一个位置1,问
千家信息网最后更新 2025年12月02日LeetCode如何在排序数组中查找元素的第一个和最后一个位置
这篇文章主要介绍LeetCode如何在排序数组中查找元素的第一个和最后一个位置,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
一,在排序数组中查找元素的第一个和最后一个位置
1,问题描述
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
如果数组中不存在目标值 target,返回 [-1, -1]。
2,示例描述
示例 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
3,题解思路
本题基于我们最熟悉的集合LinkedHashMap键值对集合来做
4,题解程序
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class SearchRanageTest2 {
public static void main(String[] args) {
int[] nums = {3, 3, 3};
int target = 3;
int[] searchRange = searchRange(nums, target);
for (int num : searchRange) {
System.out.print(num + "\t");
}
}
public static int[] searchRange(int[] nums, int target) {
if (nums == null || nums.length == 0) {
return new int[]{-1, -1};
}
Map map = new LinkedHashMap<>(nums.length);
for (int i = 0; i < nums.length; i++) {
map.put(i, nums[i]);
}
List> collect = map
.entrySet()
.stream()
.filter(x -> x.getValue() == target)
.collect(Collectors.toList());
if (collect.size() == 0) {
return new int[]{-1, -1};
}
if (collect.size() == 1) {
return new int[]{collect.get(0).getKey(), collect.get(0).getKey()};
}
if (collect.size() > 2) {
return new int[]{collect.get(0).getKey(), collect.get(collect.size() - 1).getKey()};
}
int[] result = new int[collect.size()];
int index = 0;
for (Map.Entry entry : collect) {
result[index++] = entry.getKey();
}
return result;
}
}
以上是"LeetCode如何在排序数组中查找元素的第一个和最后一个位置"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
数组
位置
示例
元素
排序
目标
目标值
输入
输出
内容
篇文章
题解
价值
兴趣
升序
小伙
小伙伴
思路
整数
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
论坛数据库系统sql
多人协同服务器搭建
电脑wifi服务器
互联网主根服务器
简易安全ftp服务器
软件开发的6个流程
查询公积金用数据库吗
无锡运营软件开发价格
数据库前端开发工具是什么
虹口区品质数据库服务销售
学画预防网络安全画
重庆市归然网络技术有限公司
gis常见空间数据库技术
金华云软件开发流程
计算机信息技术对网络安全
戴尔服务器售后服务中心官网
数据库删除包含的字段6
网络安全和网信安全
网络安全系数表
南京商邻互联网科技有限公司
软件开发进度周报模板
护苗 网络安全课堂观后感
网络安全黑龙江省
网络安全大赛公众号
邦企网络技术
ftp服务器管理接口开发
优化清理软件开发
j2ee软件开发
腾讯云轻量服务器的数据库管理
南京商邻互联网科技有限公司