Redian新闻
>
Do you guys use escrow accounts?
avatar
Do you guys use escrow accounts?# Living
d*v
1
发个第一轮电面的面经,为第二轮攒rp了
两道题
打印一个数的所有乘数组合,从大到小,不要有重复
merge interval
avatar
f*y
2
it is better to remove?
Is it worth removing it by paying escrow waiver fee (~$650 to me) ?
avatar
f*w
3
第一题没看懂。什么叫乘数组合?
avatar
k*a
4
有的lender 贷款时开escrow account会又0.25优惠。有的的lender有没有escrow
account 都一样。
看你的情况。一般escrow account 几个月以后就可以关掉(没有费用)。
avatar
w*5
5
lz能详细说说merge interval这个吗?我看之前的面经给的是add interval和
getTotalLength,和merge interval还是有点区别的。比如那个面试官不让sort。
avatar
l*a
6
不让sort就是insert interval了

【在 w*****5 的大作中提到】
: lz能详细说说merge interval这个吗?我看之前的面经给的是add interval和
: getTotalLength,和merge interval还是有点区别的。比如那个面试官不让sort。

avatar
l*a
7
24=2*2*2*3
=2*3*4
=2*12
=3*8
=4*6

【在 f*******w 的大作中提到】
: 第一题没看懂。什么叫乘数组合?
avatar
f*w
8
所以是因式分解?那什么叫从大到小,按个数排序?
avatar
l*a
9
我写的是从小到大

【在 f*******w 的大作中提到】
: 所以是因式分解?那什么叫从大到小,按个数排序?
avatar
r*e
10
你第一轮面完之后过了多久有第二轮啊?

【在 d*****v 的大作中提到】
: 发个第一轮电面的面经,为第二轮攒rp了
: 两道题
: 打印一个数的所有乘数组合,从大到小,不要有重复
: merge interval

avatar
d*w
11
这第一题是我出的,不好意思,让你费心

【在 d*****v 的大作中提到】
: 发个第一轮电面的面经,为第二轮攒rp了
: 两道题
: 打印一个数的所有乘数组合,从大到小,不要有重复
: merge interval

avatar
r*e
12
这道题的标准解法是啥?从平方向下递归么?

【在 d********w 的大作中提到】
: 这第一题是我出的,不好意思,让你费心
avatar
x*k
13
是要求factor降序,要求第一个factor从大到小么?如果是你这个倒过来也不对啊。
应该12*2排第一个?
然后8*3,6*4这样。

【在 l*****a 的大作中提到】
: 24=2*2*2*3
: =2*3*4
: =2*12
: =3*8
: =4*6

avatar
c*6
14
List> factorCombination(int n) {
List> result = new ArrayList>();
dfs(n, 2, result, new ArrayList());
return result;
}
void dfs(int n, int start, List> result, List sub
) {
if(n == 1) {
result.add(new ArrayList(sub));
return;
}

for(int i = start; i <= n; i++) {
if(n % i != 0) continue;
if(i == n && sub.isEmpty()) continue;
sub.add(i);
dfs(n / i, i, result, sub);
sub.remove(sub.size() - 1);
}
}
求指点,这样的代码能过么?

【在 d********w 的大作中提到】
: 这第一题是我出的,不好意思,让你费心
avatar
l*g
15
L家最近貌似格外爱出第一题了?
avatar
r*e
16
方法不错啊。

sub

【在 c********6 的大作中提到】
: List> factorCombination(int n) {
: List> result = new ArrayList>();
: dfs(n, 2, result, new ArrayList());
: return result;
: }
: void dfs(int n, int start, List> result, List sub
: ) {
: if(n == 1) {
: result.add(new ArrayList(sub));
: return;

avatar
r*e
17
我改了一下,这要不过不了也没办法了,不用recursion实在麻烦。
public List> getFactorCombination(int n) {
List> result = new ArrayList<>();
getFactorCombinationHelper(n, n/2, result, new ArrayList());
return result;
}
private void getFactorCombinationHelper(int n, int start, List
> result, List sub) {
if(n==1) {
result.add(new ArrayList(sub));
return;
}

for(int i = start; i >= 2; i--) {
if(n % i != 0) continue;
sub.add(i);
getFactorCombinationHelper(n / i, i, result, sub);
sub.remove(sub.size() - 1);
}
}

sub

【在 c********6 的大作中提到】
: List> factorCombination(int n) {
: List> result = new ArrayList>();
: dfs(n, 2, result, new ArrayList());
: return result;
: }
: void dfs(int n, int start, List> result, List sub
: ) {
: if(n == 1) {
: result.add(new ArrayList(sub));
: return;

avatar
d*v
18
发个第一轮电面的面经,为第二轮攒rp了
两道题
打印一个数的所有乘数组合,从大到小,不要有重复
merge interval
avatar
f*w
19
第一题没看懂。什么叫乘数组合?
avatar
w*5
20
lz能详细说说merge interval这个吗?我看之前的面经给的是add interval和
getTotalLength,和merge interval还是有点区别的。比如那个面试官不让sort。
avatar
l*a
21
不让sort就是insert interval了

【在 w*****5 的大作中提到】
: lz能详细说说merge interval这个吗?我看之前的面经给的是add interval和
: getTotalLength,和merge interval还是有点区别的。比如那个面试官不让sort。

avatar
l*a
22
24=2*2*2*3
=2*3*4
=2*12
=3*8
=4*6

【在 f*******w 的大作中提到】
: 第一题没看懂。什么叫乘数组合?
avatar
f*w
23
所以是因式分解?那什么叫从大到小,按个数排序?
avatar
l*a
24
我写的是从小到大

【在 f*******w 的大作中提到】
: 所以是因式分解?那什么叫从大到小,按个数排序?
avatar
r*e
25
你第一轮面完之后过了多久有第二轮啊?

【在 d*****v 的大作中提到】
: 发个第一轮电面的面经,为第二轮攒rp了
: 两道题
: 打印一个数的所有乘数组合,从大到小,不要有重复
: merge interval

avatar
d*w
26
这第一题是我出的,不好意思,让你费心

【在 d*****v 的大作中提到】
: 发个第一轮电面的面经,为第二轮攒rp了
: 两道题
: 打印一个数的所有乘数组合,从大到小,不要有重复
: merge interval

avatar
r*e
27
这道题的标准解法是啥?从平方向下递归么?

【在 d********w 的大作中提到】
: 这第一题是我出的,不好意思,让你费心
avatar
x*k
28
是要求factor降序,要求第一个factor从大到小么?如果是你这个倒过来也不对啊。
应该12*2排第一个?
然后8*3,6*4这样。

【在 l*****a 的大作中提到】
: 24=2*2*2*3
: =2*3*4
: =2*12
: =3*8
: =4*6

avatar
c*6
29
List> factorCombination(int n) {
List> result = new ArrayList>();
dfs(n, 2, result, new ArrayList());
return result;
}
void dfs(int n, int start, List> result, List sub
) {
if(n == 1) {
result.add(new ArrayList(sub));
return;
}

for(int i = start; i <= n; i++) {
if(n % i != 0) continue;
if(i == n && sub.isEmpty()) continue;
sub.add(i);
dfs(n / i, i, result, sub);
sub.remove(sub.size() - 1);
}
}
求指点,这样的代码能过么?

【在 d********w 的大作中提到】
: 这第一题是我出的,不好意思,让你费心
avatar
l*g
30
L家最近貌似格外爱出第一题了?
avatar
r*e
31
方法不错啊。

sub

【在 c********6 的大作中提到】
: List> factorCombination(int n) {
: List> result = new ArrayList>();
: dfs(n, 2, result, new ArrayList());
: return result;
: }
: void dfs(int n, int start, List> result, List sub
: ) {
: if(n == 1) {
: result.add(new ArrayList(sub));
: return;

avatar
r*e
32
我改了一下,这要不过不了也没办法了,不用recursion实在麻烦。
public List> getFactorCombination(int n) {
List> result = new ArrayList<>();
getFactorCombinationHelper(n, n/2, result, new ArrayList());
return result;
}
private void getFactorCombinationHelper(int n, int start, List
> result, List sub) {
if(n==1) {
result.add(new ArrayList(sub));
return;
}

for(int i = start; i >= 2; i--) {
if(n % i != 0) continue;
sub.add(i);
getFactorCombinationHelper(n / i, i, result, sub);
sub.remove(sub.size() - 1);
}
}

sub

【在 c********6 的大作中提到】
: List> factorCombination(int n) {
: List> result = new ArrayList>();
: dfs(n, 2, result, new ArrayList());
: return result;
: }
: void dfs(int n, int start, List> result, List sub
: ) {
: if(n == 1) {
: result.add(new ArrayList(sub));
: return;

avatar
r*j
33
这种解法的复杂度如何计算呢?

));
Integer>

【在 r*******e 的大作中提到】
: 我改了一下,这要不过不了也没办法了,不用recursion实在麻烦。
: public List> getFactorCombination(int n) {
: List> result = new ArrayList<>();
: getFactorCombinationHelper(n, n/2, result, new ArrayList());
: return result;
: }
: private void getFactorCombinationHelper(int n, int start, List
: > result, List sub) {
: if(n==1) {
: result.add(new ArrayList(sub));

avatar
r*e
34
没法算,考虑最坏情况与最好情况。最坏情况我得想想,最好不用想大家都知道了。

【在 r******j 的大作中提到】
: 这种解法的复杂度如何计算呢?
:
: ));
: Integer>

avatar
g*r
35
mark

【在 d*****v 的大作中提到】
: 发个第一轮电面的面经,为第二轮攒rp了
: 两道题
: 打印一个数的所有乘数组合,从大到小,不要有重复
: merge interval

avatar
g*r
36
recursive基本上就是这样了,不过既factorization是降序,这句话可以optimize一下
getFactorCombinationHelper(n / i, i, result, sub);
--》
getFactorCombinationHelper(n / i, min(n/i, i), result, sub);

));
Integer>

【在 r*******e 的大作中提到】
: 我改了一下,这要不过不了也没办法了,不用recursion实在麻烦。
: public List> getFactorCombination(int n) {
: List> result = new ArrayList<>();
: getFactorCombinationHelper(n, n/2, result, new ArrayList());
: return result;
: }
: private void getFactorCombinationHelper(int n, int start, List
: > result, List sub) {
: if(n==1) {
: result.add(new ArrayList(sub));

avatar
g*r
37
大牛是不是漏了个6*2*2?

【在 l*****a 的大作中提到】
: 24=2*2*2*3
: =2*3*4
: =2*12
: =3*8
: =4*6

avatar
j*3
39
第一题到底怎么做?
avatar
r*e
40


【在 g********r 的大作中提到】
: recursive基本上就是这样了,不过既factorization是降序,这句话可以optimize一下
: getFactorCombinationHelper(n / i, i, result, sub);
: --》
: getFactorCombinationHelper(n / i, min(n/i, i), result, sub);
:
: ));
: Integer>

avatar
h*s
41
比较经典,和小李的Combination Sum是一类题,也可以变化出乘数不能重复的。

));
Integer>

【在 r*******e 的大作中提到】
: 我改了一下,这要不过不了也没办法了,不用recursion实在麻烦。
: public List> getFactorCombination(int n) {
: List> result = new ArrayList<>();
: getFactorCombinationHelper(n, n/2, result, new ArrayList());
: return result;
: }
: private void getFactorCombinationHelper(int n, int start, List
: > result, List sub) {
: if(n==1) {
: result.add(new ArrayList(sub));

avatar
w*s
42
import java.util.ArrayList;
import java.util.List;
public class FactorTest {
List> getFactor(int n) {
List> result = new ArrayList<>();
List path = new ArrayList<>();
dfs(n, n / 2, path, result);
return result;
}

private void dfs(int n, int start, List path, List>> result) {
if (n == 1) {
result.add(new ArrayList(path));
return;
}

for (int i = start; i > 1; i--) {
if (n % i != 0) {
continue;
}

path.add(i);
dfs(n / i, Math.min(n / i, i), path, result);
path.remove(path.size() - 1);
}
}
}
avatar
w*t
43
除第一个值,后面的都需要分解到因子吗?
比如24 = 6 * 4 还是 6 * 2 * 2 ?
24分解:
24 * 1
12 * 2
8 * 3
6 * 2 * 2 (or 6 * 4)
4 * 3 * 2
3 * 2 * 2 * 2
另外谁能写个非递归的出来?
avatar
f*t
44
// 打印一个数的所有乘数组合,从大到小,不要有重复
void allMultiply(unsigned n, unsigned mn = 2) {
static vector factors;
for (unsigned i = mn; i <= n / 2; ++i) {
if (n % i == 0) {
factors.push_back(i);
allMultiply(n / i, i);
factors.pop_back();
}
}
if (!factors.empty() && n >= mn) {
factors.push_back(n);
for_each(factors.begin(), factors.end(), [](unsigned x) {
cout << x << ' ';
});
factors.pop_back();
cout << endl;
}
avatar
t*5
45
mark
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。