前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >34. 在排序数组中查找元素的第一个和最后一个位置

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

作者头像
CaesarChang张旭
发布于 2021-06-22 14:01:49
发布于 2021-06-22 14:01:49
3.3K00
代码可运行
举报
文章被收录于专栏:悟道悟道
运行总次数:0
代码可运行

给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 示例 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]

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Solution {
    public int first=Integer.MAX_VALUE;
    public int end=Integer.MIN_VALUE;
    public int[] searchRange(int[] nums, int target) {
        if(nums==null||nums.length==0){
            return new int[]{-1,-1};
        }
        
        helper(nums,target,0,nums.length-1);
         
        if(first==Integer.MAX_VALUE){
           return new int[]{-1,-1};
        }
        
        if(end==Integer.MIN_VALUE){
            return new int[]{first,-1};
        }
          return new int[]{first  ,end};
    }
        public void helper(int [] nums,int target,int left,int right){
            if(left>right||left<0||right>=nums.length) return ;
            int mid=left+(right-left)/2;
            if(nums[mid]==target){
                    if(mid<first){
                        first=mid;
                       
                    }
                    if(mid>end){
                        end=mid;
                        
                    }

            }
            if(nums[mid]>=target){
                 helper(nums,target,left,mid-1);
            }
            if(nums[mid]<=target){
                 helper(nums,target,mid+1,right);
            }
            return;

        }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/06/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
34. 在排序数组中查找元素的第一个和最后一个位置
有些人会这样写,一次二分找到目标值后直接while向两边找,这样的思路会有什么问题呢?这样重复数字越多,我们的算法时间复杂度会越来越接近接近o(n);
名字是乱打的
2021/12/23
3.1K0
34. 在排序数组中查找元素的第一个和最后一个位置
LeetCode-34-在排序数组中查找元素的第一个和最后一个位置
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
benym
2022/07/14
2.3K0
Leetcode No.34 在排序数组中查找元素的第一个和最后一个位置
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
week
2022/01/07
1.9K0
在排序数组中查找元素的第一个和最后一个位置(leetcode34)
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
Vincent-yuan
2021/04/09
1.8K0
leetcode34-在排序数组中查找元素的第一个和最后一个位置
今天刷的题目是:在排序数组中查找元素的第一个和最后一个位置,这道题目在最开始AC以后,然后做了两步的优化操作,供大家参考。
乔戈里
2019/09/17
2.7K0
leetcode34-在排序数组中查找元素的第一个和最后一个位置
LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置(二分查找)
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
Michael阿明
2020/07/13
1.8K0
LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置(二分查找)
34. 在排序数组中查找元素的第一个和最后一个位置--题解
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
付威
2021/04/25
1.9K0
备战蓝桥杯————二分查找(二)
小小程序员
2024/03/07
1311
备战蓝桥杯————二分查找(二)
二分查找一>:在排序数组中查找元素的第一个和最后一个位置
2.解析:这里不能用传统二分,因为涉及范围,传统二分时间复杂度会降为O(N),要做些改动。
用户11305962
2024/10/09
1370
二分查找一>:在排序数组中查找元素的第一个和最后一个位置
在排序数组中查找元素的第一个和最后一个位置
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
代码随想录
2021/12/15
4.8K0
LeetCode-算法-二分查找-第15天
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。
布衣者
2021/09/07
2490
leetcode刷题(89)——34. 在排序数组中查找元素的第一个和最后一个位置
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
老马的编程之旅
2022/06/22
6410
【力扣刷题】34. 在排序数组中查找元素的第一个和最后一个位置
来源:力扣(LeetCode) 整数数组 nums 按升序排列,数组中的值 互不相同 。
jayjay
2022/11/02
6260
【力扣刷题】34. 在排序数组中查找元素的第一个和最后一个位置
【刷穿 LeetCode】34. 在排序数组中查找元素的第一个和最后一个位置(中等)
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
宫水三叶的刷题日记
2021/02/20
1.7K0
LeetCode题目34:在排序数组中查找元素的第一个和最后一个位置
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
二环宇少
2020/08/13
3.1K0
LeetCode题目34:在排序数组中查找元素的第一个和最后一个位置
LeetCode-面试题53-1-在排序数组中查找数字I
在有序的数组中二分查找,确定第一个k出现的位置和最后一个k出现的位置,然后两个位置相减即是出现次数
benym
2022/07/14
5470
leetcode 34. 在排序数组中查找元素的第一个和最后一个位置
今天主要讲解的内容是:如何在已排序的数组中查找元素的第一个和最后一个位置。以 leetcode 34 题作为例题,提供二分查找的解题思路,供大家参考。
程序员小熊
2021/05/28
2.6K0
leetcode 34. 在排序数组中查找元素的第一个和最后一个位置
LeetCode - #34 在排序数组中查找元素的第一个和最后一个位置(Top 100)
我们社区陆续会将顾毅(**Netflix 增长黑客,《iOS 面试之道》作者,ACE 职业健身教练。微博:@故胤道长[1]**)的 Swift 算法题题解整理为文字版以方便大家学习与阅读。
Swift社区
2022/04/04
1.5K0
LeetCode - #34 在排序数组中查找元素的第一个和最后一个位置(Top 100)
​LeetCode刷题实战34:在排序数组中查找元素的第一个和最后一个位置
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !
程序员小猿
2021/01/20
1.2K0
LeetCode144|在排序数组中查找元素的第一个和最后一个位置
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。
码农王同学
2021/01/15
2.2K0
推荐阅读
34. 在排序数组中查找元素的第一个和最后一个位置
3.1K0
LeetCode-34-在排序数组中查找元素的第一个和最后一个位置
2.3K0
Leetcode No.34 在排序数组中查找元素的第一个和最后一个位置
1.9K0
在排序数组中查找元素的第一个和最后一个位置(leetcode34)
1.8K0
leetcode34-在排序数组中查找元素的第一个和最后一个位置
2.7K0
LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置(二分查找)
1.8K0
34. 在排序数组中查找元素的第一个和最后一个位置--题解
1.9K0
备战蓝桥杯————二分查找(二)
1311
二分查找一>:在排序数组中查找元素的第一个和最后一个位置
1370
在排序数组中查找元素的第一个和最后一个位置
4.8K0
LeetCode-算法-二分查找-第15天
2490
leetcode刷题(89)——34. 在排序数组中查找元素的第一个和最后一个位置
6410
【力扣刷题】34. 在排序数组中查找元素的第一个和最后一个位置
6260
【刷穿 LeetCode】34. 在排序数组中查找元素的第一个和最后一个位置(中等)
1.7K0
LeetCode题目34:在排序数组中查找元素的第一个和最后一个位置
3.1K0
LeetCode-面试题53-1-在排序数组中查找数字I
5470
leetcode 34. 在排序数组中查找元素的第一个和最后一个位置
2.6K0
LeetCode - #34 在排序数组中查找元素的第一个和最后一个位置(Top 100)
1.5K0
​LeetCode刷题实战34:在排序数组中查找元素的第一个和最后一个位置
1.2K0
LeetCode144|在排序数组中查找元素的第一个和最后一个位置
2.2K0
相关推荐
34. 在排序数组中查找元素的第一个和最后一个位置
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验