Как я могу преобразовать Integer в int []?
Вы не можете этого сделать.Если вы хотите конвертировать Integer[]
в int[]
, попробуйте сделать это следующим образом в java8:
int[] intArray = Arrays.stream(index_arr).mapToInt(Integer::intValue).toArray();
Обновление:
только для leetcode 34,попробуйте этот код с временной сложностью O(lgn)
, в которой используется двоичный поиск.
class Solution {
public int[] searchRange(int[] nums, int target) {
int[] res=new int[]{Integer.MAX_VALUE,Integer.MIN_VALUE};
binarySearch(nums,0,nums.length-1,target,res);
if(res[0]==Integer.MAX_VALUE&&res[1]==Integer.MIN_VALUE)
return new int[]{-1,-1};
else
return res;
}
private void binarySearch(int[] nums,int lo,int hi,int t,int[] res){
if(hi<lo)
return;
int mid=lo+(hi-lo)/2;
if(nums[mid]==t){
if(mid<res[0])
res[0]=mid;
if(res[1]<mid)
res[1]=mid;
binarySearch(nums,lo,mid-1,t,res);
binarySearch(nums,mid+1,hi,t,res);
}else if(nums[mid]<t){
binarySearch(nums,mid+1,hi,t,res);
}else if(t<nums[mid]){
binarySearch(nums,lo,mid-1,t,res);
}
}
}