s*i 发帖数: 388 | 1 给个float BST, 写个search(float target)的算法找出离target最近的数。
给个solution? | b******n 发帖数: 4509 | 2 float minDist(node *root, float target, float m = FLOAT_MAX) {
if (!root)
return m;
if (root->val == target)
retrun 0;
if (root->val > target)
return min(m, minDist(root->left, target, root->val - target);
if (root->val < target)
return min(m, minDist(root->right, target, target - root->val);
}
【在 s*i 的大作中提到】 : 给个float BST, 写个search(float target)的算法找出离target最近的数。 : 给个solution?
| f***g 发帖数: 214 | 3 请指教:
float closest(Node* root, float target) {
Node* itr = root;
float rt_1;
float rt_2;
while( itr != 0 ) {
if( itr->data < target ) {
rt_1 = itr->data;
itr = itr->right;
} else {
rt_2 = itr->data;
itr = itr->left
}
}
if( target-rt_1 < rt_2-target ) {
return rt_1;
} else {
return rt_2;
}
} | s*i 发帖数: 388 | 4 果然牛人神出鬼没!!!
应该是对的。
【在 b******n 的大作中提到】 : float minDist(node *root, float target, float m = FLOAT_MAX) { : if (!root) : return m; : if (root->val == target) : retrun 0; : if (root->val > target) : return min(m, minDist(root->left, target, root->val - target); : if (root->val < target) : return min(m, minDist(root->right, target, target - root->val); : }
| r********r 发帖数: 2912 | 5 but this solution only returns a minimal distance, not the pointer to the
node
【在 s*i 的大作中提到】 : 果然牛人神出鬼没!!! : 应该是对的。
| g*********s 发帖数: 1782 | 6 why float? isn't int equivalent?
【在 s*i 的大作中提到】 : 给个float BST, 写个search(float target)的算法找出离target最近的数。 : 给个solution?
| s*i 发帖数: 388 | 7 int also works.
【在 g*********s 的大作中提到】 : why float? isn't int equivalent?
|
|