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

waymo暑假实习面试分享

🔗
transcendence 2018-9-30 01:58:24 | 只看该作者
全局:
liuxiaoyu4321 发表于 2018-9-14 07:47
假设有k个十字路口,有一辆车在每个路口停车的概率是p, 问连续两个路口不停车的概率是多少

这听上去是个概率题啊。两个路口不停不是(1-p)^2 么?楼主能详细说下么,为什么是dp?
回复

使用道具 举报

🔗
zdj0712 2018-9-30 04:04:23 | 只看该作者
全局:
您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 100 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
回复

使用道具 举报

🔗
tyroeg 2018-10-24 05:11:58 | 只看该作者
全局:
我觉得楼主用dp的思路应该是对的。

这样的dp是不是更方便:每一步,停的概率是(上一步停的概率+上一步不停的概率)* 停的概率,不停的概率是 上一步停的概率 * 不停的概率,dp完之后return(1-结果)。
回复

使用道具 举报

🔗
pr1234567 2018-11-5 10:12:38 | 只看该作者
全局:
  1. #include<vector>
  2. #include<iostream>
  3. #include<cmath>
  4. using namespace std;

  5. void helper(vector<bool> &stop, int i, double p, double& res){
  6.     if(i==(int)stop.size()) {
  7.         int t = 0, f = 0;
  8.         for(auto k : stop){
  9.             if(k) t++;
  10.             else f++;
  11.         }
  12.         cout << t << " " <<f <<" " << pow(p,t)* pow(1.0-p,f) << endl;
  13.         res += ( pow(p,t) * pow(1.0-p,f) );
  14.         return;
  15.     }

  16.     if(i>0 && stop[i-1] == true){
  17.             stop[i] = false;
  18.             helper(stop, i+1, p, res);
  19.     }else{
  20.         stop[i] = false;
  21.         helper(stop, i+1, p, res);
  22.         stop[i] = true;
  23.         helper(stop, i+1, p, res);
  24.     }
  25.     return;

  26. }

  27. double cal(int n, double p){
  28.     // p means stop
  29.     vector<bool> stop(n,false);
  30.     double res = 0.0;
  31.     helper( stop, 0, p, res);
  32.     return res;
  33. }


  34. int main(){
  35.     int n = 2;
  36.     double p = 0.2;
  37.     double prob = cal(n,p);
  38.     cout << prob << endl;
  39.     return 0;
  40. }
复制代码


我不会用动态规划解这个, 帮我看看我这个遍历的算法对不对。
思路就是把所有最多连续停一次的case都走一遍, 概率加和,然后再用1减去,就是所需要的值。
回复

使用道具 举报

🔗
pr1234567 2018-11-5 11:08:41 | 只看该作者
全局:
liuxiaoyu4321 发表于 2018-9-14 07:47
假设有k个十字路口,有一辆车在每个路口停车的概率是p, 问连续两个路口不停车的概率是多少

跟朋友们讨论了下,dp这样子做可以:
  1. #include<vector>
  2. #include<iostream>
  3. #include<cmath>
  4. using namespace std;


  5. double cal(int n, double p){
  6.     // p means stop
  7.     vector<double> S(n, 0.0), N(n, 0.0);
  8.     S[0] = p; N[0] = 1.0-p;
  9.     for( int i =1; i< n; i++ ){
  10.         S[i] = (S[i-1] + N[i-1])*p;
  11.         N[i] = (S[i-1] )*(1-p);
  12.     }
  13.    
  14.     return 1.0 -S[n-1] - N[n-1];
  15. }


  16. int main(){
  17.     int n = 3;
  18.     double p = 0.2;
  19.     double prob = cal(n,p);
  20.     cout << prob << endl;
  21.     return 0;
  22. }
复制代码

评分

参与人数 2大米 +7 收起 理由
zzc2018 + 2 给你点个赞!
garyatsch + 5 给你点个赞!

查看全部评分

回复

使用道具 举报

🔗
zyyyyyyyyy 2018-12-11 13:58:16 | 只看该作者
全局:
能具体分享一下第二轮吗
回复

使用道具 举报

🔗
Gtjobs 2019-9-20 14:12:37 | 只看该作者
全局:
想问一下waymo的面试 可以用java吗?
回复

使用道具 举报

🔗
zzc2018 2019-12-5 07:26:30 | 只看该作者
全局:
楼主可以补充下面试能用JAVA写吗
回复

使用道具 举报

🔗
doraemon47 2020-3-29 04:44:02 | 只看该作者
全局:
pr1234567 发表于 2018-11-5 11:08
跟朋友们讨论了下,dp这样子做可以:
[mw_shl_code=cpp,true]#include
#include

哈喽, 可以解释一下 S 和N 代表啥嘛? dp 的思路是什么呀
回复

使用道具 举报

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

本版积分规则

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