Redian新闻
>
捡金子 An interview question
avatar
捡金子 An interview question# JobHunting - 待字闺中
b*y
1
Give you a bag in a room with different sizes of golds. Pick up max amount
into the bag.
int PickUpGold(int[] golds, int capacity);
avatar
N*p
2
好NP的问题。。。

【在 b*********y 的大作中提到】
: Give you a bag in a room with different sizes of golds. Pick up max amount
: into the bag.
: int PickUpGold(int[] golds, int capacity);

avatar
b*y
3
没有好的思路
avatar
y*g
4
经典背包
avatar
w*o
5
每个金子块的面值不同?金子的物理尺寸和价值有什么关系吗?
这个bag的形状是什么?金子的形状?是不是要最优的去摆放呀?!

【在 b*********y 的大作中提到】
: Give you a bag in a room with different sizes of golds. Pick up max amount
: into the bag.
: int PickUpGold(int[] golds, int capacity);

avatar
p*2
6
int PickUpGold(int[] golds, int capacity)
{
int[] dp=new int[capacity+1];
dp[0]=0;

for(int i=1;i<=capacity;i++)
{
int max=0;

for(int j=0;jif(i>=golds[j])
max=Math.max(max,1+dp[i-golds[j]]);

dp[i]=max;
}

return dp[capacity];
}
avatar
s*r
7
如果不止一个包,要怎么算呢?

【在 y*******g 的大作中提到】
: 经典背包
avatar
d*e
8
变成一个大包

【在 s**********r 的大作中提到】
: 如果不止一个包,要怎么算呢?
avatar
w*o
9
什么是"max amount "? 是指能放进去的金块的个数吗?
觉得这个题很荒谬的,就挑size最小的放就好了。
这个题到底是在说什么?
谢谢!

【在 b*********y 的大作中提到】
: Give you a bag in a room with different sizes of golds. Pick up max amount
: into the bag.
: int PickUpGold(int[] golds, int capacity);

avatar
p*2
10

是不是最小个数呀?我刚才写code是按照最小的来写的。后来才发现是要求最大。

【在 w****o 的大作中提到】
: 什么是"max amount "? 是指能放进去的金块的个数吗?
: 觉得这个题很荒谬的,就挑size最小的放就好了。
: 这个题到底是在说什么?
: 谢谢!

avatar
y*g
11
面试遇到这个级别的题目直接放弃

【在 s**********r 的大作中提到】
: 如果不止一个包,要怎么算呢?
avatar
s*r
12
真的假的啊?
不是吧。。。

【在 d**e 的大作中提到】
: 变成一个大包
avatar
d*e
13
sorry....我以为我们还在俱乐部开开玩笑。。。。

【在 s**********r 的大作中提到】
: 真的假的啊?
: 不是吧。。。

avatar
s*r
14
那咱们赶紧转回我们那个自闭俱乐部去~

【在 d**e 的大作中提到】
: sorry....我以为我们还在俱乐部开开玩笑。。。。
avatar
b*u
15
public static int PickUpGold(List golds, int capacity)
{
int max = 0;
if (golds.Count == 1)
{
if (golds[0] <= capacity)
{
max = golds[0];
}
}
else if (golds.Count > 1 )
{
for (int i=0; i< golds.Count; i++ )
{
List gs = golds.ToList();

int total = golds[i];
if (capacity - golds[i] > 0)
{
gs.RemoveAt(i);
total += PickUpGold(gs, capacity - golds[i]);
}
if (total > max && total <= capacity )
{
max = total;
if (max == capacity)
{
break;
}
}
}
}
return max;
}
avatar
S*h
16
v587

【在 p*****2 的大作中提到】
:
: 是不是最小个数呀?我刚才写code是按照最小的来写的。后来才发现是要求最大。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。