首页 > 其他分享 >【LeeCode】34. 在排序数组中查找元素的第一个和最后一个位置

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

时间:2022-12-29 23:00:45浏览次数:69  
标签:target int res list 34 util LeeCode 查找 数组

【题目描述】

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

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

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

​https://leetcode.cn/problems/find-first-and-last-position-of-element-in-sorted-array/?favorite=2cktkvj​

【示例】

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


【代码】admin

基于Array.Stream()把数组转换为list, 利用list的indexOf和lastIndexOf()获取第一个和最后一个target的下标

package com.company;
// 2022-12-29

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

class Solution {
public int[] searchRange(int[] nums, int target) {
int[] res = new int[2];
List<Integer> list = Arrays.stream(nums).boxed().mapToInt(Integer::valueOf).boxed().collect(Collectors.toList());
int i = list.indexOf(target);
int i1 = list.lastIndexOf(target);
res[0] = i;
res[1] = i1;
return res;
}
}

public class Test{
public static void main(String[] args) {
int[] arr = {5,7,7,8,8,10};
int target = 8;
new Solution().searchRange(arr, target); // 输出 [3,4]

int[] arr1 = {5,7,7,8,8,10};
int target1 = 6;
new Solution().searchRange(arr1, target1); // 输出 [-1, -1]
}
}

标签:target,int,res,list,34,util,LeeCode,查找,数组
From: https://blog.51cto.com/u_13682316/5978814

相关文章

  • 【LeeCode】67. 二进制求和
    【题目描述】给你两个二进制字符串 ​​a​​ 和 ​​b​​ ,以二进制字符串的形式返回它们的和。​​https://leetcode.cn/problems/add-binary/​​​【示例】【代码】......
  • 【LeetCode数组#1二分查找】二分查找、搜索插入、在排序数组中查找元素的第一个和最后
    二分查找题目力扣704题目链接给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。......
  • CH9434-MCU代码移植,芯片使用详细说明(附Linux开发资料链接)
    简介CH9434是一款SPI转四串口转接芯片,提供四组全双工的9线异步串口,用于单片机/嵌入式/安卓系统扩展异步串口。提供25路GPIO,以及支持RS485收发控制引脚TNOW。本篇基于STM32......
  • 查找蓝牙WiFi功能,搜索名字并列举出来
    先有一个概念,蓝牙分为普通蓝牙和低功耗(BLE)蓝牙,低功耗蓝牙激活时信号和普通蓝牙信号一样,低功耗时必须搜索低功耗蓝牙信号如果使用普通代码搜索,不能搜索到低功耗蓝牙信号......
  • windows 根据父进程pid查找所有子进程id(C++)
    直接上代码:大家直接调用即可#include<iostream>#include<Windows.h>#include<tlhelp32.h>#include<string>#include<vector>usingnamespacestd;vector<DWORD>GetPro......
  • (转载)Windows 查找占用串口(COM)的进程
    原文地址:Windows查找占用串口(COM)的进程_weixin_42501466的博客-CSDN博客_如何查看串口被哪个程序占用查找占用串口的进程1、Win+R打开运行窗口2、输入regedi......
  • 郭东白的架构课34
    你好,我是郭东白。上节课我们讲了复盘的目的,还讲了复盘的三个误区。同时,也讲了进入复盘前的准备工作。有了这些做基础,这节课我们就正式进入到复盘的过程中。复盘过程一般由......
  • vba-多列同时查找满足条件的行号
    我首先想到的非环版本要做到这一点(循环简单得多),是使用匹配(),但如果你有多个值使用A=Q或同日在那里,你可能会遇到一个问题。Dimi,jasIntegeri=Application.Match(RefC......
  • 代码随想录算法训练营第一天LeetCode704,35,34,27
    代码随想录算法训练营第一天|LeetCode704,35,34,27LeetCode704二分查找题目链接:https://leetcode.cn/problems/binary-search///第一次做还不知道二分中的左闭右开和左闭......
  • 二分查找
    一、二分查找1.二分查找方法概述二分查找是针对有序数组的一种查找方式。是利用(letf+right)/2=mid的方式来对半缩短搜索范围的一种方法,一次查找,搜索的范围就会减半。相......