2024/9/13 Hot100 二分查找
This commit is contained in:
parent
dde55bb39b
commit
ba931c03be
src/main/java/com/cool/hot100/binary_search
|
@ -0,0 +1,44 @@
|
|||
package com.cool.hot100.binary_search;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* Created with IntelliJ IDEA.
|
||||
*
|
||||
* @Author: Cool
|
||||
* @Date: 2024/09/13/16:02
|
||||
* DayNumber 4
|
||||
* Hard 2
|
||||
* Level ?
|
||||
*/
|
||||
public class Num34 {
|
||||
public int[] searchRange(int[] nums, int target) {
|
||||
int index = binarySearch(nums, target);
|
||||
if(index==nums.length||nums[index]!=target){
|
||||
return new int[]{-1,-1};
|
||||
}
|
||||
int end=binarySearch(nums,target+1)-1;
|
||||
return new int[]{index,end};
|
||||
}
|
||||
|
||||
private int binarySearch(int[] nums, int target) {
|
||||
int left=0;
|
||||
int right=nums.length-1;
|
||||
while (left <= right) {
|
||||
int mid =left+(right-left)/2;
|
||||
if(target>nums[mid]){
|
||||
left=mid+1;
|
||||
}else{
|
||||
right=mid-1;
|
||||
}
|
||||
}
|
||||
return left;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
searchRange(new int[]{5,7,7,8,8,10}, 6);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
package com.cool.hot100.binary_search;
|
||||
|
||||
/**
|
||||
* Created with IntelliJ IDEA.
|
||||
*
|
||||
* @Author: Cool
|
||||
* @Date: 2024/09/13/15:35
|
||||
* DayNumber 3
|
||||
* Hard 2
|
||||
* Level ?
|
||||
*/
|
||||
public class Num74 {
|
||||
|
||||
public boolean searchMatrix(int[][] matrix, int target) {
|
||||
int rowLen=matrix.length;
|
||||
if(rowLen==0){
|
||||
return false;
|
||||
}
|
||||
int index=0;
|
||||
int colLen=matrix[0].length;
|
||||
for(int i=1;i<rowLen;i++){
|
||||
if(target<matrix[i][0]){
|
||||
break;
|
||||
}
|
||||
index=i;
|
||||
}
|
||||
int left=0;
|
||||
int right=colLen;
|
||||
while(left<right){
|
||||
int mid=(left+right)/2;
|
||||
if(target<matrix[index][mid]){
|
||||
right=mid;
|
||||
}else if(target>matrix[index][mid]){
|
||||
left=mid+1;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue