2023.03.09

1.手写堆,heapify,heapinsert,insert,isempty,delete
2.给定一个大致有序的数组且交换k步之内必变,写一个时间复杂度合适的算法,利用堆排序,因为是k步之内必有序,设置一个小根堆,堆的大小是k+1,每次弹出堆顶,弹出是再进一个元素,堆弹完,排序完成
3.给定一组线段,线段给起始和终点位置,要求找到线段最密集的区间的线段条数。利用堆的特点,先将start用堆排好序,按照排好序的start一次进堆,start进堆时,堆弹出所有比start小的数,end进堆,统计堆内元素个数。遍历完start数组后,取最大的元素个数。即是答案。这题需要手写堆,手写堆让火车撞了都不能忘。
4.堆排序的时间复杂度为n的优化,数组从后往前做heapify,也就是从最右边叶节点开始,所有节点做heapify的个数加在一起,利用错位相减与等比数列,得出时间复杂度收敛于n
全部评论
左神的是吧,今天正好看了
点赞 回复 分享
发布于 2023-03-25 16:39 俄罗斯
修改。给定一组线段,线段给起始和终点位置,要求找到线段最密集的区间的线段条数。组建line数组按照start升序。按照排好序的line进堆,line进堆时,堆弹出所有比start小的数,end进堆,统计堆内元素个数。遍历完start数组后,取最大的元素个数。即是答案。这题需要手写堆,手写堆让火车撞了都不能忘。
点赞 回复 分享
发布于 2023-03-09 23:03 黑龙江

相关推荐

07-25 10:31
门头沟学院 Java
求问各位大佬,笔试都考点啥
投递科大讯飞等公司10个岗位
点赞 评论 收藏
分享
07-10 14:08
已编辑
江西农业大学 Java
拒绝无效加班的小学生...:期望3k吗?java这辈子有了
点赞 评论 收藏
分享
已注销:再接着投吧项目经历太流水账,且没有实习经历,我之前也是这样,后来跟着大厂导师修改了项目和简历之后成功上岸,有需要可以问我
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务