千家信息网

LeetCode如何在排序数组中查找元素的第一个和最后一个位置

发表于:2024-09-23 作者:千家信息网编辑
千家信息网最后更新 2024年09月23日,这篇文章主要介绍LeetCode如何在排序数组中查找元素的第一个和最后一个位置,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一,在排序数组中查找元素的第一个和最后一个位置1,问
千家信息网最后更新 2024年09月23日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安全错误 数据库的锁怎样保障安全 漳平手机软件开发企业 互联网促进科技创新的事例 分布式pld如何降低服务器成本 软件测试软件开发技术 最好的网络安全是谁 水务局网络安全技术保障 济宁大学生诚信积分管理软件开发 关于成立市委网络安全 深圳中兴基带软件开发 服务器安全设置下载文件 数据库打开后不能建表怎么回事 政务信息系统数据库国标 数据库怎么查询字段的类型 更新数据库的值 派出所网络安全管理费 越秀区软件开发中专技工 如何加上网络安全意识 设置窗体标题数据库 rh2288服务器功率 智能化软件开发价格实惠 关于网络安全的板报简单又好 db2查询数据库大小 检察网络安全应急预案 重庆电信软件开发工资待遇 陕西大汉网络技术有限公司 网约车软件开发宣传语 武汉狸猫互联网科技 为什么坦克世界总是服务器断开 人大金仓数据库管理工具安装教程 如何给家庭安装一个云盘服务器
0