得物手撕,求解
一个非0的数组,正负元素都有,把其中出现次数超过1个的元素
置为0
要求
1、空间复杂度0(1)
2、时间复杂度小于0平方
3、不要有两层循环
置为0
要求
1、空间复杂度0(1)
2、时间复杂度小于0平方
3、不要有两层循环
全部评论
1. 原地建立一个最小堆(保证堆顶最小):O(n)
2. 每次pop出一个元素和上一个比较,进行置0操作:pop一次O(logn),n个数一共pop n次,共计O(nlogn)
总计O(n+nlogn)=O(nlogn)
这个应该满足要求吧,也没有二重循环,就是需要手撕一个数组堆化
找个nlogn空间复杂度o1的排序算法,排序然后遍历一遍?
调用排序,然后使用分组循环去重即可。
可以改变数组树的顺序吗
相关推荐
点赞 评论 收藏
分享
2025-11-24 18:53
郑州轻工业大学 Java 点赞 评论 收藏
分享
2025-12-23 10:57
重庆移通学院 Java 同标题,boss上打了几十次招呼,有两个要了简历就没回了,各位大佬可以指点一下我的简历吗?刚做完项目就写了简历,还没有背八股文。佬们,我想找个小厂的实习,面试是问项目多点还是八股文多点,现在该如何准备
牛客77062465...:没实习经历的话基本上都是拷打八股多点
点赞 评论 收藏
分享
点赞 评论 收藏
分享
查看2道真题和解析