第一次學JAVA 有幾個問題一直琢磨不透
1.一般什么情況下會呼叫helper function
2. 不知道紅色的意思,一般java里括號里面是逗號代表什么,跟signature一樣的道理嗎
public int[] kClosest(int[] array, int target, int k) {
if (array == null || array.length == 0){
return array;
}
if (k == 0){
return new int[0];
}
int left = largestSmallerEqual(array, target);
int right = left + 1;
int [] result = new int[k];
for (int i = 0; i < k; i++){
if (right >= array.length || left >= 0 && target - array[left] <= array[right] - target){
result[i] = array[left--];
}else{
result[i] = array[right++];
}
}
return result;
}
private int largestSmallerEqual(int[] array, int target){
int left = 0;
int right = array.length - 1;
while (left < right -1){
int mid = left + (right - left) / 2;
if (array[mid] <= target){
left = mid;
}else{
right = mid;
}
}
if (array[right] <= target){
return right;
}
if (array[left] <= target){
return left;
}
return -1;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/90842.html
標籤:其他技術討論專區
上一篇:[求助] Devstack安裝的openstack找不到nova,cinder,glance的log
下一篇:cass2008
