123
返回列表 发新帖
楼主: 匿名
跳转到指定楼层
上一主题 下一主题
收起左侧

微软苏州4面挂经

🔗
usr_opta 2020-9-4 15:37:27 | 只看该作者
全局:
那么多人把 subset sum 的变种当成背包说明题刷的还是不够啊
  1. int solve(const vector<int>a, int k) { ..
  2.     int lo = 0;
  3.     int hi = 0;
  4.     for (int t : a) {
  5.         if (t < 0) lo += t; else hi += t;
  6.     }
  7.     auto dp = make_unique<int[]>(hi-lo+1);
  8.     dp [-lo] = 1;
  9.     for (int t : a) {
  10.         if (t > 0)      for (int x=hi-lo; x>=t;       x--) dp[x]+=dp[x-t];
  11.         else if (t < 0) for (int x=0;     x<=hi-lo+t; x++) dp[x]+=dp[x-t];. 1point 3acres
  12.     }
  13.     return dp[k-lo];
  14. }
  15. . 1point 3 acres
  16. // [1,2,1,2],3 ==> 4. Χ
  17. // [4,-3,2], 3 ==> 1
  18. // [-2,2],   0 ==> 2
复制代码
回复

使用道具 举报

🔗
Newhans 2020-9-5 13:59:59 | 只看该作者
全局:
telegramatic 发表于 2020-6-2 09:20
第一题二叉树左视图用递归的话需要一个全局变量,维护目前为止探测过的最深深度,然后正常的前序遍历就行了 ...
. 1point 3 acres
妙了 zszszszs
回复

使用道具 举报

🔗
yhubda 2020-10-14 06:40:17 | 只看该作者
全局:
usr_opta 发表于 2020-9-4 15:37
那么多人把 subset sum 的变种当成背包说明题刷的还是不够啊
[mw_shl_code=cpp,true]int solve(const vect ...

你这个解法如果k是负数就不对了
回复

使用道具 举报

🔗
usr_opta 2020-10-14 08:30:09 | 只看该作者
全局:
shashduqhasd 发表于 2020-10-14 06:40. 1point3acres.com
你这个解法如果k是负数就不对了

求测试输入
回复

使用道具 举报

🔗
yhubda 2020-10-14 08:41:01 | 只看该作者
全局:

哦不对,你的应该是对的。不过我觉得直接把数组所有的数全弄成正数,写DP的时候会更方便吧
回复

使用道具 举报

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

本版积分规则

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