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

狗狗店面

全局:

() @ - -   | | |

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

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

x
今天下午的新鲜面经,来回馈一下地里的小伙伴,顺便求过求大米~
1. 给一个string让encode,
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
-10-1 00:39):
已过,拿到onsite,求大米

评分

参与人数 2大米 +4 收起 理由
chestnut9919 + 1 感谢分享!
blairmn123 + 3 很有用的信息!

查看全部评分


上一篇:Coursera OA1 9/23
下一篇:下午刚做的OA2
推荐
Sayings 2016-9-24 12:50:20 | 只看该作者
全局:
第二题:
random 0-1的数,如果小于0.5 n=n-1 再递归算一遍  直到n=0, 返回1. 这个思路对吗?
代码差不多这样

  1.         public int solution(int n){
  2.                 if(n == 0) return 1;
  3.                 double rand = Math.random();
  4.                 int ans;
  5.                 if(rand<=0.5){
  6.                         ans = solution(n-1);
  7.                 }else{
  8.                         ans = 0;
  9.                 }
  10.                 return ans;
  11.         }
复制代码
回复

使用道具 举报

推荐
zgbb 2016-9-26 02:43:09 | 只看该作者
全局:
  1. public int generateOneOrZero(int n) {
  2.         Random rd  = new Random();
  3.         int sum = 0;
  4.         for (int i = 0; i < n; i++) {
  5.             if (rd.nextDouble() < 0.5) {
  6.                 return 0;
  7.             }
  8.         }
  9.         return 1;
  10.     }
复制代码

补充内容 (2016-9-26 02:45):
typo, 第三行多余忘记删除了
回复

使用道具 举报

推荐
 楼主| 翔在天空 2016-9-25 00:15:38 | 只看该作者
全局:
Sayings 发表于 2016-9-24 12:50
第二题:
random 0-1的数,如果小于0.5 n=n-1 再递归算一遍  直到n=0, 返回1. 这个思路对吗?
代码差不多 ...

这个基本对吧,但是不用递归的,就循环n次,每次rand 0或者1,然后加和,最后和为0的话返回1,否则返回0就好
回复

使用道具 举报

🔗
ytsr 2016-9-24 13:00:47 | 只看该作者
全局:
Sayings 发表于 2016-9-24 12:50
第二题:
random 0-1的数,如果小于0.5 n=n-1 再递归算一遍  直到n=0, 返回1. 这个思路对吗?
代码差不多 ...

just return rand()%(2^n)==0

补充内容 (2016-9-24 13:02):
当然得看n的范围了,n太大的话,得用多个随机数了。小于32,一个就够了

补充内容 (2016-9-24 13:03):
2^n, i.e., 1<<n
回复

使用道具 举报

🔗
 楼主| 翔在天空 2016-9-25 00:13:59 | 只看该作者
全局:
ytsr 发表于 2016-9-24 13:00
just return rand()%(2^n)==0

补充内容 (2016-9-24 13:02):

我开始给的这个rand()%(2^n)==0的解法,但是明显n太大会overflow
回复

使用道具 举报

🔗
chestnut9919 2016-9-25 01:29:42 | 只看该作者
全局:
第一题单个字符的时候怎么encode?比如abc要是变成a1b1c1那不是更长吗?
回复

使用道具 举报

🔗
ytsr 2016-9-25 01:38:27 | 只看该作者
全局:
翔在天空 发表于 2016-9-25 00:13
我开始给的这个rand()%(2^n)==0的解法,但是明显n太大会overflow

既然你知道会overflow那就处理overflow的case就行了。
一共需要n/32个随机数。无非是分段处理

补充内容 (2016-9-25 02:13):
但是n太大的话这么弄也有问题,因为伪随机数是不可能产生两个连续的0的。
回复

使用道具 举报

🔗
Romeobaby 2016-9-25 01:51:15 | 只看该作者
全局:
chestnut9919 发表于 2016-9-25 01:29
第一题单个字符的时候怎么encode?比如abc要是变成a1b1c1那不是更长吗?

好聪明  能从这个角度想
回复

使用道具 举报

🔗
Sayings 2016-9-25 03:54:55 | 只看该作者
全局:
翔在天空 发表于 2016-9-25 00:15
这个基本对吧,但是不用递归的,就循环n次,每次rand 0或者1,然后加和,最后和为0的话返回1,否则返回0 ...

嗯是的~最近递归instinct
写完后发现iterative就好了~
回复

使用道具 举报

🔗
 楼主| 翔在天空 2016-9-25 22:55:56 | 只看该作者
全局:
chestnut9919 发表于 2016-9-25 01:29
第一题单个字符的时候怎么encode?比如abc要是变成a1b1c1那不是更长吗?

这个问题我也问面试官了,她表示就是a1b1c1
回复

使用道具 举报

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

本版积分规则

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