首页 > 试题广场 >

在升序数组中查找元素的位置

[编程题]在升序数组中查找元素的位置
  • 热度指数:1132 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个长度为n的非降序排列的整数数组nums,和一个目标值 target。请找出给定目标值在数组中的开始位置和结束位置。
如果数组中不存在目标值 target,返回 [-1, -1]
该题有的解法


示例1

输入

[4,7,7,8,8,10],8

输出

[3,4]

说明

可以在数组中找到整数8,其开始位置为3,结束位置为4     
示例2

输入

[4,7,7,8,8,10],6

输出

[-1,-1]

说明

不可以在数组中找到整数6,故输出整数-1     
头像 向光而行的你很犹豫
发表于 2023-04-25 20:29:06
class Solution { public: vector<int> searchRange(vector<int>& nums, int target) { int a = 0, b = 0; int l = 0, r = nums.si 展开全文
头像 向光而行的你很犹豫
发表于 2023-04-25 20:40:43
class Solution { public: vector<int> searchRange(vector<int>& nums, int target) { int a = 0, b = 0; int l = 0, r = nums.size() - 1; 展开全文
头像 17c89
发表于 2024-08-29 12:29:22
import java.util.*; /** * NC307 在升序数组中查找元素的位置 * @author d3y1 */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 展开全文
头像 猪猪向前冲
发表于 2022-03-05 21:17:59
class Solution { public:     /**      * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可   & 展开全文
头像 Kuris
发表于 2022-08-07 10:50:13
使用二分搜索分别搜索左边界和右边界 import java.util.*; public class Solution {          public ArrayL 展开全文
头像 fred-coder
发表于 2022-02-27 14:14:19
二分法找左右边界,引入 bisect 模块,bisect_left 求出左边界 l(表示有几个值 < target), bisect_right 求出右边界 r(表示有几个值 <= target), 结果中是该值左侧和右侧的索引, 返回 [l, r - 1] import bisect 展开全文
头像 在写周报的长颈鹿很想在家办公
发表于 2022-05-04 15:41:54
强烈推荐 链接算法小抄
头像 小步惊惊
发表于 2022-05-21 09:28:15
解题思路就是采用二分法查找,递归遍历,在找到目标值之后,先向左遍历得到左边界,再向右遍历得到右边界。 public class Solution { public ArrayList<Integer> searchRange (ArrayList<Integer> nums, 展开全文
头像 姐姐的遮阳伞
发表于 2022-04-07 17:39:19
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型ArrayList 展开全文

问题信息

难度:
6条回答 1812浏览

热门推荐

通过挑战的用户

查看代码
在升序数组中查找元素的位置