首页 > 编程语言 > 详细

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

时间:2021-05-15 12:19:24      阅读:14      评论:0      收藏:0      [点我收藏+]
 1 package leetcode;
 2 
 3 public class demo_34 {
 4     public int[] searchRange(int[] nums, int target) {
 5         int[] s= {-1,-1};
 6         if(nums.length==0) {return s;}
 7         int right=nums.length-1;
 8         int left=0;
 9         int mid=(right+left)/2;
10         //通过二分法来查找target的位置
11         while(left<=right) {
12             mid=(left+right)/2;
13             if(target>nums[mid]) {
14                 left=mid+1;
15             }
16             if(target<nums[mid]) {
17                 right=mid-1;
18             }
19             if(target==nums[mid]) {
20                 left=mid;
21                 right=mid;
22                 while(left>=0&&nums[left]==target) {left=left-1;}
23                 s[0]=left+1;
24                 while(right<nums.length&&nums[right]==target) {right=right+1;}
25                 s[1]=right-1;
26                 break;
27             }
28         }
29         for(int i:s) {
30             System.out.print(i+" ");
31         }
32         return s;
33     }
34     public static void main(String[] args) {
35         // TODO Auto-generated method stub
36         demo_34 d34=new demo_34();
37         int[] nums= {5,7,7,8,8,10};
38         d34.searchRange(nums, 8);
39     }
40 
41 }

 

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

原文:https://www.cnblogs.com/Yshun/p/14770859.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!