Leecode-每日一题-题目448. 找到所有数组中消失的数字
今天重新开始刷leecode 为了致敬我的偶像,还是选择把做题笔记发在博客园上
题目448. 找到所有数组中消失的数字
给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。
找到所有在 [1, n] 范围之间没有出现在数组中的数字。
您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。
示例:
输入:
[4,3,2,7,8,2,3,1]
输出:
[5,6]
链接:https://leetcode-cn.com/problems/find-all-numbers-disappeared-in-an-array
解题经历
首选当然是哈希表,想要再开一个数组,然后再用下标索引进行记录,但是上面的加粗字体为我带上了痛苦面具!!思前想后,还是点开了题解5555
题解复述
思路:** 原地修改 ** :这个思路的核心我认为在两点:
- 1.不产生额外的空间:直接对数组进行修改,数组本身就是一个哈希记录表
- 2.那怎么在同一个cell里面又做记录又有原来的信息嘞—— 利用取余还原的思想 也就是对应的所以增加n,当再次对n取余的时候就会还原啦
- 3.需要注意索引的修改(以前都喜欢暴力的绝对11 对应)这波只能是 用 x-1(数组是从0开始的
贴一波代码啦
class Solution {
public List<Integer> findDisappearedNumbers(int[] nums) {
for(int i=0;i<nums.length;i++){
int x=(nums[i]-1)%nums.length; //1.为了控制数组0开始 2.为了防止这个index已经被别的相加过了
nums[x]+=nums.length;
}
List<Integer> rest=new ArrayList<Integer>();
for(int i=0;i<nums.length;i++){
if(nums[i]<=nums.length){
rest.add(i+1);
}
}
return rest;
}
}
此外,对于我而言这也是使用ArrayList的一个语法记忆点了
List rest=new ArrayList()
暴力贴Java-ArrayList连接
Leecode-每日一题-题目448. 找到所有数组中消失的数字的更多相关文章
- Java实现 LeetCode 448 找到所有数组中消失的数字
448. 找到所有数组中消失的数字 给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次. 找到所有在 [1, n] 范围之间 ...
- Leetcode 448.找到所有数组中消失的数字
找到所有数组中消失的数字 给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次. 找到所有在 [1, n] 范围之间没有出现 ...
- LeetCode-----算法448.找到所有数组中消失的数字
题目: 给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次. 找到所有在 [1, n] 范围之间没有出现在数组中的数字. ...
- [LeetCode] 448. 找到所有数组中消失的数字(思维)
题目 给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次. 找到所有在 [1, n] 范围之间没有出现在数组中的数字. 您 ...
- 力扣(LeetCode)448. 找到所有数组中消失的数字
给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次. 找到所有在 [1, n] 范围之间没有出现在数组中的数字. 您能在不使 ...
- [LeetCode] 448. 找到所有数组中消失的数字 ☆
描述 给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次. 找到所有在 [1, n] 范围之间没有出现在数组中的数字. 您 ...
- 【leetcode 简单】 第一百零八题 找到所有数组中消失的数字
给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次. 找到所有在 [1, n] 范围之间没有出现在数组中的数字. 您能在不 ...
- 448 Find All Numbers Disappeared in an Array 找到所有数组中消失的数字
给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次.找到所有在 [1, n] 范围之间没有出现在数组中的数字.您能在不使用 ...
- [Swift]LeetCode448. 找到所有数组中消失的数字 | Find All Numbers Disappeared in an Array
Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and ot ...
- Leetcode448.Find All Numbers Disappeared in an Array找到所有数组中消失的数字
给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次. 找到所有在 [1, n] 范围之间没有出现在数组中的数字. 您能在不 ...
随机推荐
- Python的入门学习Day 19~21——form”夜曲编程“
..Day 19 time:2021.8.16. 很神奇地,编程和数学渐渐有了交集--今天学习了函数,连模样都像 f(x) 的形式.比较有区分度的是,在P里,"x"被称为&qu ...
- html表白代码
1.在电脑桌面右击鼠标选择新建--文本文档 2.并命名为:biaobai.txt 3.打开并且把一下代码复制并粘贴到biaobai.txt <!DOCTYPE html PUBLIC " ...
- appium遇到的问题
问题1:权限问题:java.lang.SecurityException: Injecting to another application requires INJECT_EV ENTS permi ...
- 004. html篇之《标签分类和嵌套规则》
html篇之<标签分类和嵌套规则> 一.常用标签 (1) <div></div> 一个区块容器标记,可以包含图片.表格.段落等各种html元素 (2) <sp ...
- 各种工具点评以供选择使用 + 开发工具秘籍(git, webpack。。。。)
git最佳实践: https://gist.github.com/fandean/ca29cd2f326f66c659951d7ab356cefb ========================== ...
- kube-proxy
1 kube-proxy报错 "--random-fully" 解决: # yum install gcc make libnftnl-devel libmnl-devel aut ...
- nxp imx8m与imx6 使用VPU时,申请CMA的区别
imx8mp是什么时候申请CM的: imx8mp是我自己看的,imx6不一定保熟. imx8mp: imx6:
- 第13周 预习、实验与作业:Java网络编程
编写一个网络程序,为了与其他网络程序通信,至少要知道对方的什么信息? IP地址 TCP与UDP协议有什么不同的呢?什么时候该选择哪种协议?HTTP使用的是TCP还是UDP?不重要的短信息传送之类的功能 ...
- 官网jdk8,jdk11下载时需要登录Oracle账号的问题解决
当到这一步骤时先勾选同意,在这个下载按钮上点鼠标右键复制链接地址 文件的下载地址 我们需要把地址做些修改.把等号前面的地址删掉,然后找到等号后面地址中的otn后面加上-pub 然后把这个地址直接复制到 ...
- 浅谈JS中的element.style和window.getComputedStyle()的区别
MDN对于element.style的解释 被高光的句子中的inline style属性是指css内联样式,即元素的style属性的属性值 总结一下,element.style只能获取到元素的styl ...