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

问一道面经题

🔗
smartczy 2021-3-30 22:53:57 | 只看该作者
全局:
确实是个数学题,参考 刷题网其无似
  1. int minStep(int target) {
  2.         int step = 0;
  3.         int sum = 0;
  4.         while (sum < target) {
  5.             step++;
  6.             sum += 5;
  7.         }
  8.         while ((sum - target) % 3 != 0) {
  9.             step++;
  10.             sum += 5;
  11.         }-baidu 1point3acres
  12.         step += (sum-target)/3;
  13.         return step;
  14.     }
复制代码
回复

使用道具 举报

🔗
ShinoQAQ 2021-3-31 13:38:12 | 只看该作者
全局:
smartczy 发表于 2021-3-30 22:07
老哥太秀了。
问下这个结论是怎么得出来的?

我觉得是因为 (5x-t) + (x+t) = 6x,6x整除3所以他们的余数互补。
回复

使用道具 举报

🔗
iuysyjdmuvew 2021-6-14 05:28:49 | 只看该作者
全局:
我之前面华为的时候也面了一个差不多的..我就不明白国内这么喜欢面数学题到底是为了什么..哪里可以得到码农能力的signal..
回复

使用道具 举报

🔗
wsndbd 2021-8-5 11:04:41 | 只看该作者
全局:
请看我的解法
  1. static int ms1(int target){
  2.   int dict[] = {0, 2 + 3, 1 + 1, 3 + 4, 2 + 2};. 1point 3acres
  3.   return dict[target % 5] + target / 5;
  4. }
  5. int main()
  6. {
  7.   std::cout << ms1(10);
  8.   return 0;
  9. }
复制代码


其实任何一个数,前面都是固定的,只要考虑5的余数部分就好了。1,2,3,4,这几个如果能走到,前面贯予5的倍数即可。
就是把一个数拆分成两部分。 5*n + x =target..1point3acres
x取值,只有0,1,2,3,4. 走到0的步数就是0, 1的步数是5*2 - 3*3 = 5步。
这样任意一个target,就是先整初,这个是第一部分的步数 + 剩余余数的步数
回复

使用道具 举报

🔗
MIKUFAN 2021-9-6 17:48:54 | 只看该作者
全局:
其实这算一道贪心题,target直接按照模5分类,走法是固定的
回复

使用道具 举报

全局:
看到最短最快bfs
回复

使用道具 举报

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

本版积分规则

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