n == nums.length
1 <= n <= 105
1 <= nums[i] <= n
进阶:你能在不使用额外空间且时间复杂度为 O(n) 的情况下解决这个问题吗? 你可以假定返回的数组不算在额外空间内。
鸽笼原理
由题意可得,1n的位置表示1n个笼子,如果出现过,相应的“鸽笼”就会被占掉,我们将数字置为负数表示被占掉了。
最后再遍历一遍,如果“鸽笼”为正数就是没出现的数字。
所有
leetcode
代码已同步至github
欢迎
star
/**
* @author yitiaoIT
*/
class Solution {
public List<Integer> findDisappearedNumbers(int[] nums) {
for (int i = 0; i < nums.length; i++) {
nums[Math.abs(nums[i])-1]=-Math.abs(nums[Math.abs(nums[i])-1]);
}
ArrayList<Integer> list = new ArrayList<>();
for (int i = 0; i < nums.length; i++) {
if (nums[i]>0){
list.add(i+1);
}
}
return list;
}
}
复杂度分析
- 时间复杂度:O(N)
⭐今天是坚持刷题更文的第14/100天
⭐各位的点赞、关注、收藏、评论、订阅就是一条创作的最大动力
⭐更多算法题欢迎关注专栏《leetcode》
为了回馈各位粉丝,礼尚往来,给大家准备了一条多年积累下来的优质资源,包括 学习视频、面试资料、珍藏电子书等
怎么领取请大家自己找,寻宝游戏现在开始。
找不到可以评论留言,一条就会注意到你。
总结
至此,文章终于到了尾声。总结一下,我们谈论了简历制作过程中需要注意的以下三个部分,并分别给出了一些建议:
CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】
- 技术能力:先写岗位所需能力,再写加分能力,不要写无关能力;
- 项目经历:只写明星项目,描述遵循 STAR 法则;
- 简历印象:简历遵循三大原则:清晰,简短,必要,要有的放矢,不要海投;
以及最后为大家准备的福利时间:简历模板+Java面试题+热门技术系列教程视频
历模板+Java面试题+热门技术系列教程视频
[外链图片转存中…(img-LyFXMuHz-1630923239047)]
[外链图片转存中…(img-GHMhzKpf-1630923239048)]
[外链图片转存中…(img-UXY8OZl8-1630923239049)]