Redian新闻
>
请问贷款agent 给的credit back
avatar
请问贷款agent 给的credit back# Living
s*y
1
有如下两个版本,为什么运行起来结果好像都不对呢?求指教!
请问如何修改才能让两个版本都对?
void findKth(node *root, int K, int &count, int &number)
{
count=0;
if(!root)
return;
findKth(root->right, K, count, number);

count++;
if(count == K)
{
number = root->data;
return;
}
findKth(root->left, K, count, number);
}
node* find_kth_max(node *root, unsigned int k){
static int count = -1;
if(root==NULL)
return NULL;

node *nd;
nd=find_kth_max(root->right, k);
if(count==k) return nd; // 为什么我总觉得这句多余呢?

count++;
if(count==k) return nd;
nd=find_kth_node(root->left, k);
return (count==k) ? nd : NULL;
}
avatar
n*u
2
在找贷款,一个agent直接给免掉了一千多的费用,另一个不给免,但说会在最后的
closing给两千credit back,请问后一种可信吗?如何操作?
多谢。
avatar
D*f
3
只看了第一种解法,显然你不该一开始就count=0,这样右子树节点数就没有计入了。
avatar
k*n
4
都有可能。 让他给你个书面quote。
如果贷款数额与利率一样,你只管最终closing时你要付的钱,中间如何处理无所谓。
avatar
c*a
5
有一个helper function来输入count?或者make count static global
avatar
n*u
6
可是 settlement 的公司,和贷款公司是两家啊,我不需要告诉贷款公司怎么在close
的时候给我这个credit?

【在 k**n 的大作中提到】
: 都有可能。 让他给你个书面quote。
: 如果贷款数额与利率一样,你只管最终closing时你要付的钱,中间如何处理无所谓。

avatar
s*y
7
第二个版本请问可以把那句有注释的语句去掉吗?总感觉可以去掉

【在 c*****a 的大作中提到】
: 有一个helper function来输入count?或者make count static global
avatar
b*d
8
可信,就是在closing的时候用lender的credit来cover你的closing cost。现在这样的
做法很常见。

【在 n******u 的大作中提到】
: 在找贷款,一个agent直接给免掉了一千多的费用,另一个不给免,但说会在最后的
: closing给两千credit back,请问后一种可信吗?如何操作?
: 多谢。

avatar
w*o
9
不太会C++,不知道这个行不行?
void findKth(node *root, int K, int &count, int &number)
{
count=0;
if(!root)
return;
findKth(root->right, K, count, number);

//count++;
if(count >= K)
{
//number = root->data;
return;
}
if(count + 1 == k)
{
count++;
number = root->data;
return;
}
int rightCount = count;
findKth(root->left, K - rightCount - 1, count, number);
count += rightCount + 1;
}
avatar
k*n
10
需要。
有个表上要填amount of credit form XXX
xxx=buyer agent\seller agent\seller\loanlender 等等。。

close

【在 n******u 的大作中提到】
: 可是 settlement 的公司,和贷款公司是两家啊,我不需要告诉贷款公司怎么在close
: 的时候给我这个credit?

avatar
c*a
11
那个貌似多余的
我照着你想法写的
static int i=0;
public void findKth(BSTNode node, int k){
if(node == null) return;
findKth(node.right, k );
i++;
if(i==k) System.out.println(node.getData());
findKth(node.left, k );
}
avatar
b*d
12
贷款公司会告诉escrow公司怎么给你credit的.

close

【在 n******u 的大作中提到】
: 可是 settlement 的公司,和贷款公司是两家啊,我不需要告诉贷款公司怎么在close
: 的时候给我这个credit?

avatar
d*i
13
就是inorder traversal吧,楼上的正解。
avatar
n*s
14
直接给你现成的树的话,只能in order traversal了吧
让你自己建树的话,就augmenting BST, log n
avatar
d*g
16

如果已经找到kth max了,就可以停了吧:
if(i==k)
{
System.out.println(node.getData());
return;
}

【在 c*****a 的大作中提到】
: 那个貌似多余的
: 我照着你想法写的
: static int i=0;
: public void findKth(BSTNode node, int k){
: if(node == null) return;
: findKth(node.right, k );
: i++;
: if(i==k) System.out.println(node.getData());
: findKth(node.left, k );
: }

avatar
q*m
17
可以求k次predecessor 吗?

【在 s*******y 的大作中提到】
: 有如下两个版本,为什么运行起来结果好像都不对呢?求指教!
: 请问如何修改才能让两个版本都对?
: void findKth(node *root, int K, int &count, int &number)
: {
: count=0;
: if(!root)
: return;
: findKth(root->right, K, count, number);
:
: count++;

avatar
b*m
18
现成的BST貌似除了遍历没有什么别的办法?
avatar
s*x
19
刚刚整理了一下这道题, 这是我搜集到的思路, 自己写的 code.
//Solution 1: using in order traversal.
// Time is O(n).
Node *getKth1(Node *root, int &k)
{
if (root == NULL)
return NULL;
Node *res =
getKth(root->left, k);
if (res != NULL)
return res;
if (k == 1)
return root;
k--;
return getKth(root->right, k);
}
// Solution 2: If each node has its
// left sub-tree size info, we can do
// time O(logn).
Node *getKth(Node *root, int k)
{
if (root == NULL)
return NULL;
if (k == root->leftSize + 1)
return root;
if (k < root->leftSize + 1)
return getKth(root->left, k);
return getKth(root->right,
k - root->leftSize - 1);
}
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。