找到最接近的元素我有一個排序的數組。給定一個鍵值(不一定在表中),我想找到表中接近鍵值的元素。ArrayList中
我曾考慮使用二進制搜索,但我需要返回最接近的元素,如果該鍵不在表(未-1)。我應該怎麼做?
如果沒有匹配返回-1
。這是我目前嘗試使用二進制搜索:
public static long binarySearch (ArrayList<Long> arr, int first, int last, long key)
{
if (first > last) return -1;
int mid = first + (last - first)/2;
if (arr.get(mid) == key)
return mid;
else if (arr.get(mid) > key)
return binarySearch(arr, first, mid - 1, key);
else
return binarySearch(arr, mid + 1, last, key);
}
什麼是你的問題? – Keppil
「最接近」是什麼意思? – aliteralmind
例如{1,4,6,7,8,19},如果密鑰是3,則該方法必須返回4 – user3090011