Eddie Bauer semi annual sale# Living
c*u
1 楼
我和同学被两家不同的公司考了这个题。
输入是一个排好序的decimal数组和一个target number。要求找出这个数组中最接近
target的数。例子:
[1.0, 2.5, 3.0], target = 0.5, 那么就返回1.0.
[1.0, 2.5, 3.0], target = 2.0, 那么就返回2.5.
要求用Java写,函数的signature要我自己写,所以所有数字我都定义成double。我觉
得这就用普通的binary search吧?
int left = 0;
int right = len - 1;
while(left <= right) {
int mid = ...;
然后比较大小左右移动left和right
}
请问这道题的陷阱在哪里呢?既然他问的是decimal,而不是integer,那么应该有陷阱。
followup question是怎么能做到比O(lg n)更快。前提是函数只被call一次,不是多次
被call。
输入是一个排好序的decimal数组和一个target number。要求找出这个数组中最接近
target的数。例子:
[1.0, 2.5, 3.0], target = 0.5, 那么就返回1.0.
[1.0, 2.5, 3.0], target = 2.0, 那么就返回2.5.
要求用Java写,函数的signature要我自己写,所以所有数字我都定义成double。我觉
得这就用普通的binary search吧?
int left = 0;
int right = len - 1;
while(left <= right) {
int mid = ...;
然后比较大小左右移动left和right
}
请问这道题的陷阱在哪里呢?既然他问的是decimal,而不是integer,那么应该有陷阱。
followup question是怎么能做到比O(lg n)更快。前提是函数只被call一次,不是多次
被call。