May 2009 - May 2017 论坛八周年-你的足迹,我的骄傲


一亩三分地论坛

 找回密码
 获取更多干活,快来注册

一亩三分地官方iOS手机应用下载
查看: 3477|回复: 19
收起左侧

8.26 雅虎面试

[复制链接] |试试Instant~ |关注本帖
caiqi8877 发表于 2016-8-28 05:39:35 | 显示全部楼层 |阅读模式

2016(7-9月) 码农类 硕士 全职@Yahoo - 网上海投 - 技术电面 |Other其他

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

您需要 登录 才可以下载或查看,没有帐号?获取更多干活,快来注册

x
周五面的Yahoo Finance

. more info on 1point3acres.com1) reverse string in place
2) Combination sum.只需要输出最终有多少种组合. 相同数字不同顺序视为一样。
. from: 1point3acres.com/bbs
另外想请问下大神第二题如果用DP应该怎么写。。。. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴


补充内容 (2016-8-28 12:49):. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
楼主已经知道怎么用dp写了。。

评分

1

查看全部评分

omega094 发表于 2016-8-28 07:07:49 | 显示全部楼层
关注一亩三分地公众号:
Warald_一亩三分地
第二题就是LC 377 I guess ?
回复 支持 反对

使用道具 举报

 楼主| caiqi8877 发表于 2016-8-28 09:32:49 | 显示全部楼层
关注一亩三分地微博:
Warald
omega094 发表于 2016-8-28 07:07. visit 1point3acres.com for more.
第二题就是LC 377 I guess ?

不同点在于 同样的组合不同顺序视为同一个
回复 支持 反对

使用道具 举报

evaeva11 发表于 2016-8-30 06:44:14 | 显示全部楼层
请问DP怎么做呀?
回复 支持 反对

使用道具 举报

 楼主| caiqi8877 发表于 2016-8-30 08:09:04 | 显示全部楼层
evaeva11 发表于 2016-8-30 06:44
请问DP怎么做呀?
. from: 1point3acres.com/bbs
for(int coin:coins){
  for(int i = coin;i<=target;i++){. From 1point 3acres bbs
     dp += dp[i-coin];

}
}
回复 支持 反对

使用道具 举报

aangel 发表于 2016-8-30 08:45:40 | 显示全部楼层
caiqi8877 发表于 2016-8-30 08:09. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
for(int coin:coins){
  for(int i = coin;i

LZ这段代码能不能写的详细一点啊?这里的dp和dp分别表示什么啊
回复 支持 反对

使用道具 举报

aangel 发表于 2016-8-30 09:06:19 | 显示全部楼层

第二题能否用DP来写?
回复 支持 反对

使用道具 举报

aangel 发表于 2016-8-30 10:05:05 | 显示全部楼层


我感觉第二题要是用DP来写,可以设一个二维数组f[i][j],  i表示的是sum, j表示的coins里面的坐标, 时间复杂度还是O(target*coins.length)

比如coins = [1,2,3],  target = 4

那么最终结果可表示为f[3][1]+f[2][2]+f[1][3],  f[3][1]表示以不超过1的数字来组合成sum为3的种类有多少种,f[2][2]表示以不超过2的数字来组合成sum为2的种类有多少种,f[1][3]表示以不超过3的数字来组合成sum为1的种类有多少种,然后再update f[4][1], f[4][2], f[4][3]
回复 支持 反对

使用道具 举报

evaeva11 发表于 2016-8-30 12:52:08 | 显示全部楼层
caiqi8877 发表于 2016-8-30 08:09
for(int coin:coins){
  for(int i = coin;i
. Waral 鍗氬鏈夋洿澶氭枃绔,
谢谢哦
回复 支持 反对

使用道具 举报

pupuchan1116 发表于 2016-8-31 12:18:39 | 显示全部楼层
aangel 发表于 2016-8-30 08:45
LZ这段代码能不能写的详细一点啊?这里的dp和dp分别表示什么啊
. 1point 3acres 璁哄潧
楼主其实已经很详细了,把问题转化为coin change来做,就是一道最基本的一维DP题。有兴趣可以上网搜一下coin change就知道了。或者看leetcode 322,只是322求的是最小,这题是总和,但是思路是一样的
回复 支持 反对

使用道具 举报

aangel 发表于 2016-9-1 04:27:43 | 显示全部楼层
pupuchan1116 发表于 2016-8-31 12:18
楼主其实已经很详细了,把问题转化为coin change来做,就是一道最基本的一维DP题。有兴趣可以上网搜一下c ...

不对吧,这个题要看清要求啊,跟leetcode combination sum IV不一样的,
举个例子  coints = [1,2,3], target是100, 如果开一个一维数组f[100],那就是求f[100],
那f[100]要怎么得来呢,
假设f[100]的定义是sum为100的各种不同的组合的个数之和(注意这里不同的sequence只能算是一个)
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴那首先f[100]可以先表示为f[97]+3,即最后以3作为结尾的,那么计算f[98]+2的时候就出现问题了(表示最后一位以2结尾的),因为这个会跟之前里面的f[97]+3那个case会产生重复(比如[1,3,2]和[1,2,3]其实是算一种)
所以这里要真用DP做得用二维数组
回复 支持 反对

使用道具 举报

pupuchan1116 发表于 2016-9-1 13:58:30 | 显示全部楼层
aangel 发表于 2016-9-1 04:27
不对吧,这个题要看清要求啊,跟leetcode combination sum IV不一样的,
举个例子  coints = [1,2,3], t ...

你说的对,我的错,我没有仔细想顺着楼主的思路就理所当然以为是这样了了,其实确实要用二维dp。
回复 支持 反对

使用道具 举报

evaeva11 发表于 2016-9-2 04:10:33 | 显示全部楼层
请问full time 和intern 冷冻期分别是多少呀?
回复 支持 反对

使用道具 举报

cicean 发表于 2016-9-2 05:34:41 | 显示全部楼层
真的有人还在面试Yahoo 么?
回复 支持 反对

使用道具 举报

小魏Stenica 发表于 2016-9-3 09:08:32 | 显示全部楼层
楼主我主要想请问一下reverse string in place,这个in place我完全想不到办法做到啊,怎么都要用到O(n) space,看到leetcode discuss上的in-place方法实际上也不算是in-place啊
求指点迷津
回复 支持 反对

使用道具 举报

pupuchan1116 发表于 2016-9-4 11:02:23 | 显示全部楼层
小魏Stenica 发表于 2016-9-3 09:08.鐣欏璁哄潧-涓浜-涓夊垎鍦
楼主我主要想请问一下reverse string in place,这个in place我完全想不到办法做到啊,怎么都要用到O(n) sp ...

如果用Java是怎麼都不可能in place的,因為java的String是immutable的。那個應該是針對C和C++的吧
回复 支持 反对

使用道具 举报

小魏Stenica 发表于 2016-9-4 14:01:53 | 显示全部楼层
pupuchan1116 发表于 2016-9-3 20:02
如果用Java是怎麼都不可能in place的,因為java的String是immutable的。那個應該是針對C和C++的吧
. 1point 3acres 璁哄潧
对,我是用的Java,打破脑袋都想不通为什么在说in-place,原来是c++, 我对c++一点都不熟悉. visit 1point3acres.com for more.
多谢解答!
回复 支持 反对

使用道具 举报

cicean 发表于 2016-9-6 13:48:20 | 显示全部楼层
小魏Stenica 发表于 2016-9-4 14:01
对,我是用的Java,打破脑袋都想不通为什么在说in-place,原来是c++, 我对c++一点都不熟悉.1point3acres缃
多 ...

就是char[] 做,就叫in-place 了你得跟考官说。java string 没有智能转char[]
回复 支持 反对

使用道具 举报

小魏Stenica 发表于 2016-9-8 04:59:04 | 显示全部楼层
cicean 发表于 2016-9-5 22:48
就是char[] 做,就叫in-place 了你得跟考官说。java string 没有智能转char[]

好的,谢谢!我明白了!
回复 支持 反对

使用道具 举报

guoshuyan880929 发表于 2016-9-10 16:03:29 | 显示全部楼层
aangel 发表于 2016-9-1 04:27
不对吧,这个题要看清要求啊,跟leetcode combination sum IV不一样的,
举个例子  coints = [1,2,3], t ...

不用二维数组,楼主的一维数组DP思路是对的!
但是需要加两个语句:
. Waral 鍗氬鏈夋洿澶氭枃绔,1. 把输入数组排序
2. 在外循环中跳过重复的数。
这样你提到的重复case也不会发生。
. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
回复 支持 反对

使用道具 举报

本版积分规则

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2017-5-28 04:16

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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