mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 16:54:50 +08:00
增加034 java解法
This commit is contained in:
@ -271,6 +271,64 @@ class Solution {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```java
|
||||||
|
// 解法三
|
||||||
|
class Solution {
|
||||||
|
public int[] searchRange(int[] nums, int target) {
|
||||||
|
int left = searchLeft(nums,target);
|
||||||
|
int right = searchRight(nums,target);
|
||||||
|
return new int[]{left,right};
|
||||||
|
}
|
||||||
|
public int searchLeft(int[] nums,int target){
|
||||||
|
// 寻找元素第一次出现的地方
|
||||||
|
int left = 0;
|
||||||
|
int right = nums.length-1;
|
||||||
|
while(left<=right){
|
||||||
|
int mid = left+(right-left)/2;
|
||||||
|
// >= 的都要缩小 因为要找第一个元素
|
||||||
|
if(nums[mid]>=target){
|
||||||
|
right = mid - 1;
|
||||||
|
}else{
|
||||||
|
left = mid + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// right = left - 1
|
||||||
|
// 如果存在答案 right是首选
|
||||||
|
if(right>=0&&right<nums.length&&nums[right]==target){
|
||||||
|
return right;
|
||||||
|
}
|
||||||
|
if(left>=0&&left<nums.length&&nums[left]==target){
|
||||||
|
return left;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int searchRight(int[] nums,int target){
|
||||||
|
// 找最后一次出现
|
||||||
|
int left = 0;
|
||||||
|
int right = nums.length-1;
|
||||||
|
while(left<=right){
|
||||||
|
int mid = left + (right-left)/2;
|
||||||
|
// <= 的都要更新 因为我们要找最后一个元素
|
||||||
|
if(nums[mid]<=target){
|
||||||
|
left = mid + 1;
|
||||||
|
}else{
|
||||||
|
right = mid - 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// left = right + 1
|
||||||
|
// 要找最后一次出现 如果有答案 优先找left
|
||||||
|
if(left>=0&&left<nums.length&&nums[left]==target){
|
||||||
|
return left;
|
||||||
|
}
|
||||||
|
if(right>=0&&right<=nums.length&&nums[right]==target){
|
||||||
|
return right;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Python
|
### Python
|
||||||
@ -685,3 +743,4 @@ class Solution {
|
|||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
||||||
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
|
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user