推荐:数据科学课程和书籍清单以及培训讲座


一亩三分地论坛

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

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

发一个脸家最近的垫面

[复制链接] |试试Instant~ |关注本帖
moonyellow 发表于 2017-6-19 15:55:33 | 显示全部楼层 |阅读模式

2017(4-6月) 码农类 硕士 全职@Facebook - 网上海投 - 技术电面 |Other在职跳槽

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

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

x
利扣 伞寺期口丁的时候需要比较注意边界条件
可以参考这个相类似的解法:
https://stackoverflow.com/questions/20398799

本帖被以下淘专辑推荐:

f1371342385 发表于 2017-6-20 13:50:15 | 显示全部楼层
关注一亩三分地公众号:
Warald_一亩三分地
347的话是top k用的是bucket sort,后面那个是类似于平面上最近的点吧
回复 支持 反对

使用道具 举报

immutable 发表于 2017-6-20 14:03:12 | 显示全部楼层
关注一亩三分地微博:
Warald
一亩三分地严打"顶""好贴""收藏了"之类的垃圾回复帖!被警告三次,系统会自动封杀ID!. Waral 鍗氬鏈夋洿澶氭枃绔,
. visit 1point3acres.com for more.
想支持楼主,请点击帖子下方的"好苗""分享""收藏"键,酌情给楼主加大米(系统不扣你自己的分)。
积分不够看不了帖子,请参考论坛导航里的"帮助","新手提纲"里有攒积分指南

补充内容 (2017-6-20 14:03):
就一题啊?
回复 支持 反对

使用道具 举报

say543 发表于 2017-6-20 14:15:45 | 显示全部楼层
什么样的边界条件呢 楼主?
回复 支持 反对

使用道具 举报

 楼主| moonyellow 发表于 2017-6-20 15:26:56 | 显示全部楼层
f1371342385 发表于 2017-6-20 13:50
347的话是top k用的是bucket sort,后面那个是类似于平面上最近的点吧

啊对了,element不是分布在1到N的区间,可以是任意值。
所以不能bucket sort。
stack overflow里这个partition是比较好的做法。
回复 支持 反对

使用道具 举报

 楼主| moonyellow 发表于 2017-6-20 15:27:25 | 显示全部楼层
immutable 发表于 2017-6-20 14:03
一亩三分地严打"顶""好贴""收藏了"之类的垃圾回复帖!被警告三次,系统会自动封杀ID!
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
想支持楼主,请点 ...

是的是的~~~~~
回复 支持 反对

使用道具 举报

 楼主| moonyellow 发表于 2017-6-20 15:32:10 | 显示全部楼层
say543 发表于 2017-6-20 14:15
什么样的边界条件呢 楼主?

比如说有重复频率的元素的时候,做partition或者put heap的时候怎么设定比较的规则,可以避免额外操作。. Waral 鍗氬鏈夋洿澶氭枃绔,
也可以讨论重复频率的元素怎么处理,输出所有大于等于top k频率的元素呢,还是只要取top k个就可以了。
回复 支持 反对

使用道具 举报

smilingface117 发表于 2017-6-20 16:49:02 | 显示全部楼层
感觉是遍历一遍数组生成frequency map 再用min heap就可以得到结果了 时间复杂度 O(n + nlogk)
回复 支持 反对

使用道具 举报

熟狗脸 发表于 2017-6-21 00:10:35 来自手机 | 显示全部楼层
谢谢楼主分享
回复 支持 反对

使用道具 举报

33847682 发表于 2017-6-21 00:54:12 | 显示全部楼层
lz的意思是用quickselect嘛?
回复 支持 反对

使用道具 举报

 楼主| moonyellow 发表于 2017-6-21 02:21:18 | 显示全部楼层
smilingface117 发表于 2017-6-20 16:49
感觉是遍历一遍数组生成frequency map 再用min heap就可以得到结果了 时间复杂度 O(n + nlogk)

这是一个OK的解法,遍历以后假设有m种频率,m<n and m>k
min heap的做法复杂度是 O(n) + O(m lgk)
partition 或者 quick select的做法是 O(n) + O(m)

后者貌似更好,前者写好也不会挂。
详解可以看这个stack overflow的帖子
回复 支持 反对

使用道具 举报

 楼主| moonyellow 发表于 2017-6-21 02:22:06 | 显示全部楼层
33847682 发表于 2017-6-21 00:54
lz的意思是用quickselect嘛?

嗯是可以的,不过是要对于频率的quick select。所以先要算出来。
回复 支持 反对

使用道具 举报

f1371342385 发表于 2017-6-21 09:58:27 | 显示全部楼层
moonyellow 发表于 2017-6-21 02:22
嗯是可以的,不过是要对于频率的quick select。所以先要算出来。

LZ的意思是对过后的频率的值来进行quickselect?这个办法不错
回复 支持 反对

使用道具 举报

smilingface117 发表于 2017-6-23 06:07:32 | 显示全部楼层
谢lz quick select时间的确更优 LZ拿到onsite了没
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2017-7-28 14:50

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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