📣 4th of July限时特惠: VIP通行证立减$68
回复: 5
跳转到指定楼层
上一主题 下一主题
收起左侧

新鲜亚麻OA

🔗
匿名用户-KECDK  2021-1-24 13:21:16 |倒序浏览

2021(1-3月) 码农类General 硕士 全职@amazon - 猎头 - 在线笔试  | | WaitList | 在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x


两题

您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies

评分

参与人数 3大米 +4 收起 理由
Elley + 1 很有用的信息!
howdysun + 2 给你点个赞!
Houdini + 1 很有用的信息!

查看全部评分


上一篇:罗宾侠电面
下一篇:一杯 视频四轮
🔗
Tsul 2021-1-24 13:55:36 | 只看该作者
全局:
shopping option是新题吧
回复

使用道具 举报

🔗
风吹雨 2021-1-25 02:15:09 | 只看该作者
全局:
Shopping Options里面的price是sort的吗?楼主我的想法是先sort,再递归搜索,如果小于等于budget就count++;楼主,这么解有问题吗?
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-KECDK  2021-1-25 02:27:04
风吹雨 发表于 2021-1-25 02:15
Shopping Options里面的price是sort的吗?楼主我的想法是先sort,再递归搜索,如果小于等于budget就count++; ...

不是sort,需要有memorization 有些case才不会超时
回复

使用道具 举报

全局:
求楼主帮忙看下shopping options这样写可以吗
  1. public int getNumberOfOptions(int[] priceOfJeans, int[] priceOfShoes,
  2.                                   int[] priceOfSkirts, int[] priceOfTops, int dollars) {
  3.         //dp[i][j] represents the # of options for buying items from 0 to i with j dollars
  4.         //
  5.        // induction rule: dp[i][j] += dp[i - 1][j - priceOfI] for each priceOfI if j - priceOfI >= 0
  6.         //base case: dp[i][0] = 0, dp[0][j] depends on how many priceOfItem0 is <= j
  7.         //time: O(4 * dollars * len of price array)

  8.         int[][] dp = new int[4][dollars + 1];
  9.         for (int i = 0; i < 4; i++) {
  10.             for (int j = 0; j <= dollars; j++) {
  11.                 if (j == 0) {
  12.                     dp[i][j] = 0;
  13.                 }
  14.                 else if (i == 0) {
  15.                     for (int price: priceOfJeans){
  16.                         if (price <= j) {
  17.                             dp[i][j]++;
  18.                         }
  19.                     }
  20.                 }
  21.                 else if (i == 1) {
  22.                     induction(dp, priceOfShoes, i, j);
  23.                 }
  24.                 else if (i == 2) {
  25.                     induction(dp, priceOfSkirts, i, j);
  26.                 }
  27.                 else if (i == 3) {
  28.                     induction(dp, priceOfTops, i, j);
  29.                 }
  30.             }
  31.         }
  32.         return dp[3][dollars];


  33.     }
  34.     private void induction(int[][] dp, int[] prices, int i, int j) {
  35.         for (int price: prices) {
  36.             if (j - price >= 0) {
  37.                 dp[i][j] += dp[i - 1][j - price];
  38.             }
  39.         }
  40.     }
复制代码


回复

使用道具 举报

🔗
Maunchia 2021-5-2 07:04:55 | 只看该作者
全局:
dorothyzheng112 发表于 2021-1-30 11:51
求楼主帮忙看下shopping options这样写可以吗[mw_shl_code=java,true]public int getNumberOfOptions(int[] ...

亲测heap会爆掉
然后我优化了下只有两行,heap还是爆掉了。
大概是因为dollars 是 < 10^9。

最后没写出来testcase全过的解
现在想想可能得用Map来存之前的结果?有点类似用python写dfs,然后在dfs的function上加个@cache
回复

使用道具 举报

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

本版积分规则

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