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

新轩的狗狗面巾

🔗
conghao2016 2020-8-7 09:44:12 | 只看该作者
全局:
应该是TreeMap 吧。。。 排序和控制size全都有了
回复

使用道具 举报

🔗
conghao2016 2020-8-7 09:47:23 | 只看该作者
全局:
有了兄弟萌,这个题我觉得可能是Bucket Sort(counting sort) + sliding windows,主要节省时间在排序这块,排序时间从Onlogn 降到 On,但我没看过你的题,如果题是每次都要排序那就是从N * klogk降低到 N K。
回复

使用道具 举报

🔗
affe 2020-8-21 14:47:43 | 只看该作者
全局:
yiliaobailiao 发表于 2020-7-30 09:39
楼主给的感觉不是最优解?用单调栈可以做到linear的时间复杂度。不过从这个看出来,最优并不一定是必须的 ...

层主能分享一下用单调栈的思路嘛~ 感觉似乎和Sliding Window Maximum 那道题的单调栈似乎还不太一样~ 谢谢~
回复

使用道具 举报

🔗
yiliaobailiao 2020-8-21 21:29:21 | 只看该作者
全局:
affe 发表于 2020-8-21 14:47
层主能分享一下用单调栈的思路嘛~ 感觉似乎和Sliding Window Maximum 那道题的单调栈似乎还不太一样~ 谢 ...

跟那道题思路是一样的。那个滑动窗口的大小是固定的K,所以右端扫到新元素的时候,要判断跟窗口最左端之间的距离是不是超过K。这道题变成判断时间差是不是超过1小时就可以了(假定输入是按照时间戳排好序的)。
回复

使用道具 举报

🔗
affe 2020-8-24 20:21:41 | 只看该作者
全局:
yiliaobailiao 发表于 2020-8-21 21:29
跟那道题思路是一样的。那个滑动窗口的大小是固定的K,所以右端扫到新元素的时候,要判断跟窗口最左端之 ...

恩恩,不过那道题没有用堆而是用了一个单调递增的栈来存所有可能的Max,我的意思是这道题有没有可能不用堆来存某一个窗口内的most viewed tweet,而是用一个单调的栈来做。
回复

使用道具 举报

🔗
yiliaobailiao 2020-8-24 21:53:00 | 只看该作者
全局:
affe 发表于 2020-8-24 20:21
恩恩,不过那道题没有用堆而是用了一个单调递增的栈来存所有可能的Max,我的意思是这道题有没有可能不用 ...

两个题,感觉都是用单调递减的queue(比如python里面deque)来实现比较好,因为右边进,左边出。stack不太好,不容易左边pop。
回复

使用道具 举报

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

本版积分规则

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