📣 独立日限时特惠: VIP通行证立减$68
12
返回列表 发新帖
楼主: Trafalgra
跳转到指定楼层
上一主题 下一主题
收起左侧

airbnb 电面

🔗
lfzh123 2016-12-4 12:11:59 | 只看该作者
全局:
han4011 发表于 2016-11-23 01:41
楼主把 code 贴上来看看 怎么回事

我写了一下,但是输出结果很奇怪,比如说2.57的话,
输出结果是
Combination 0:
0.32, 0.95, 1.3,
但是prices里有0.65 and 1.3,按说结果还得有
0.32, 0.65, 0.65, 0.95才对啊,不知道问题在哪儿
  1.   public static void main(String[] args) {
  2.     double[] prices = {0.32, 1.30, 3.37, 0.65, 0.95,2.30};
  3.     List<List<Double>> result = combineSum(prices, 2.57);
  4.     for(int i = 0; i < result.size();i++){
  5.       System.out.println("Combination "+i+":");
  6.       for(int j = 0; j < result.get(i).size();j++)
  7.           System.out.print(result.get(i).get(j)+", ");
  8.       System.out.println();
  9.     }
  10.   }
  11.   private static List<List<Double>> combineSum(double[] prices, double target){
  12.     List<List<Double>> result = new ArrayList<>();
  13.     Arrays.sort(prices);
  14.     dfs(prices, 0, target, new ArrayList<Double>(), result);
  15.     return result;
  16.   }
  17.   private static void dfs(double[] prices, int index, double target, List<Double> sol, List<List<Double>> res){
  18.     if(Double.compare(target, 0.0) == 0){
  19.       res.add(new ArrayList<Double>(sol));
  20.       return;
  21.     }
  22.     if(target < 0)
  23.       return;
  24.     for(int i = index; i < prices.length;i++){
  25.       sol.add(prices[i]);
  26.       dfs(prices, i, target-prices[i], sol, res);
  27.       sol.remove(sol.size()-1);
  28.     }
  29.   }
复制代码
回复

使用道具 举报

🔗
 楼主| Trafalgra 2016-12-4 14:19:41 | 只看该作者
全局:
lfzh123 发表于 2016-12-4 12:11
我写了一下,但是输出结果很奇怪,比如说2.57的话,
输出结果是
Combination 0:

这题貌似有两种思路:
1是把每个数都乘以100 免去double类型的比较
2是用一个小量来表示趋于接近
回复

使用道具 举报

🔗
lfzh123 2016-12-5 09:08:50 | 只看该作者
全局:
SiyaoZhu 发表于 2016-12-4 14:19
这题貌似有两种思路:
1是把每个数都乘以100 免去double类型的比较
2是用一个小量来表示趋于接近

嗯,我刚试了一下,变成int然后计算是正确的,谢谢~
回复

使用道具 举报

无效楼层,该帖已经被删除
🔗
LanAh 2017-1-1 06:37:48 | 只看该作者
全局:
请问楼主,这个题为什么要sort?没有太明白
回复

使用道具 举报

🔗
shelly1996 2017-1-1 08:13:24 | 只看该作者
全局:
楼主有没有考虑不同菜名但是价格相同呢,请问这种情况怎么办呢
回复

使用道具 举报

🔗
李大牛 2017-2-8 00:15:45 | 只看该作者
全局:
不sort可能会有重复
回复

使用道具 举报

🔗
f1371342385 2017-5-1 03:48:48 | 只看该作者
全局:
李大牛 发表于 2017-2-8 00:15
不sort可能会有重复

请问这个地方的重复体现在那里呢?是不同的菜有相同的价格吗,这样的话,重复的话也ok呀
回复

使用道具 举报

🔗
grasssu2 2017-5-1 06:19:47 | 只看该作者
全局:
请问他家是用什么网站做题啊?
回复

使用道具 举报

🔗
cywaner 2017-11-4 04:37:42 | 只看该作者
全局:
f1371342385 发表于 2017-5-1 03:48
请问这个地方的重复体现在那里呢?是不同的菜有相同的价格吗,这样的话,重复的话也ok呀

同问 请问您现在知道了吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表