📣 独立日限时特惠: VIP通行证立减$68
12
返回列表 发新帖
楼主: zxyviopond
跳转到指定楼层
上一主题 下一主题
收起左侧

请教一个Leetcode上的算法题

🔗
zengxinzhy 2013-3-5 18:19:28 | 只看该作者
全局:
zengxinzhy 发表于 2013-3-5 05:06
楼主的想法确实是O(n)的复杂度,因为:
扫描数据,放入hashset中:O(n)
遍历hashset时,每个元素最多被到 ...

Sorry, 开始的时候把楼主的遍历方法理解错了,把关于m的分析跳过
回复

使用道具 举报

全局:
zengxinzhy 发表于 2013-3-5 17:45
遍历的时候是可以这么做,但为位图开辟一片空间以后首先是需要初始化的,把位图中的所有数据都设为0,这一 ...

hash也是要初始化的,hash的大小和希望获得的冲突的概率以及数据有关。
再者题目无非是想考查如何稀疏访问数据,而所给假设不足,本身就没有完美答案
回复

使用道具 举报

🔗
zengxinzhy 2013-3-5 20:04:07 | 只看该作者
全局:
好困想睡觉 发表于 2013-3-5 06:31
hash也是要初始化的,hash的大小和希望获得的冲突的概率以及数据有关。
再者题目无非是想考查如何稀疏访 ...

是的。
Hash的大小一般会设为n的两倍左右,平均情况下复杂度为O(n),但是在最坏最坏很倒霉的情况下复杂度会达到O(n^2)
Bitmap的时间和空间复杂度都为O(k),但是能保证每次运行复杂度都这么高。
就看trade off怎么选择吧。
一般看算法题的时候,我都是默认复杂度的要求是平均复杂度,而不是最坏时候的复杂度,不然quick sort之类的一大堆算法都没法用了
回复

使用道具 举报

🔗
 楼主| zxyviopond 2013-3-6 14:33:26 | 只看该作者
全局:
谢谢各位了,学到很多~ Delete Hash的确不是一个好办法,我后来想到开个n大小的数组记录每个元素是否被visited过,如果visited了就当作被删除掉好了。至于初始化时候的insert ... 偶们就当做是平均复杂度吧……
回复

使用道具 举报

🔗
sing1ee 2013-3-6 14:57:01 | 只看该作者
全局:
我觉得O(n) 是不合适的。
原因是:“向上”“向下”的炸找,并不能算做O(1)的,因为并不知道,“向上”“向下”几个。
但是这个怎么衡量,我也没有思路,请教大拿。
回复

使用道具 举报

🔗
sing1ee 2013-3-7 11:52:55 | 只看该作者
全局:
可以是O(n)的,思路和你的差不多。
只不过,每次只需要考虑上一个,和 下一个。
代码:https://gist.github.com/sing1ee/5105469
perl的,不过很好懂。
回复

使用道具 举报

🔗
 楼主| zxyviopond 2013-3-7 13:51:12 | 只看该作者
全局:
sing1ee 发表于 2013-3-7 11:52
可以是O(n)的,思路和你的差不多。
只不过,每次只需要考虑上一个,和 下一个。
代码:https://gist.gith ...

懂啦,谢谢~这个比我那个思路清晰~
回复

使用道具 举报

🔗
jackjiang2 2013-3-16 07:29:30 | 只看该作者
全局:
大神 能否简单说下解题思路  在网上看这个的解法  各种看不懂  55
回复

使用道具 举报

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

本版积分规则

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