LeetCode#448. Find All Numbers Disappeared in an Array LeetCode#442. Find All Duplicates in an Array
来源:互联网 发布:知其雄守其雌 曾国藩 编辑:程序博客网 时间:2024/05/17 07:45
LeetCode#448
- 题目:一个大小为n的数组,数组中的元素都在1到n之间,有元素可能出现多次,找出没有出现在数组中的元素(除返回结果,不能申请额外的空间,时间复杂度要求为o(n))
- 难度:Easy
- 思路:由于时间复杂度和空间复杂度的限制,我们需要在原数组中进行一些操作,来标志那些值已经存在,将数组元素和数组下表关系利用起来,标志元素是否存在(这里是将nums[i]-1作为下标,第一遍for循环,将数组元素nums[nums[i]-1]赋值为0或者负数)
- 代码:
public class Solution { public List<Integer> findDisappearedNumbers(int[] nums) { List<Integer> result = new ArrayList<>(); if(nums == null || nums.length == 0){ return result; } for(int i = 0; i < nums.length; i++){ int val = Math.abs(nums[i]) - 1; if(nums[val] > 0){ nums[val] = -nums[val]; } } for(int i = 0; i < nums.length; i++){ if(nums[i] > 0){ result.add(i+1); } } return result; }}
LeetCode#442
- 题目:一个大小为n的数组,数组所有元素都是1-n之间的值,一部分元素在数组中出现一次,一部分元素在数组中出现两次,找出所有出现两次的元素返回
- 难度:Medium(做出上一道题,这道题其实就简单了)
- 思路:同上一道题,只要稍微改变一下判断条件
- 代码:
public class Solution { public List<Integer> findDuplicates(int[] nums) { List<Integer> result = new ArrayList<>(); if(nums == null || nums.length == 0){ return result; } for(int i = 0; i < nums.length; i++){ int val = Math.abs(nums[i]) - 1; if(nums[val] < 0){ result.add(val+1); }else{ nums[val] = - nums[val]; } } return result; }}
阅读全文
0 0
- LeetCode#448. Find All Numbers Disappeared in an Array LeetCode#442. Find All Duplicates in an Array
- LeetCode-Find All Duplicates in an Array & Find All Numbers Disappeared in an Array
- LeetCode-Array-448. Find All Numbers Disappeared in an Array
- leetcode:448. Find All Numbers Disappeared in an Array
- LeetCode 448. Find All Numbers Disappeared in an Array
- <leetcode>448.Find All Numbers Disappeared in an Array
- [LeetCode] 448. Find All Numbers Disappeared in an Array
- [LeetCode]448. Find All Numbers Disappeared in an Array
- leetcode 448. Find All Numbers Disappeared in an Array
- Leetcode 448. Find All Numbers Disappeared in an Array
- 【LeetCode】 448. Find All Numbers Disappeared in an Array
- 448. [LeetCode]Find All Numbers Disappeared in an Array
- [leetcode] 448. Find All Numbers Disappeared in an Array
- LeetCode 448. Find All Numbers Disappeared in an Array
- Leetcode-448. Find All Numbers Disappeared in an Array
- 【Leetcode】448. Find All Numbers Disappeared in an Array
- LeetCode - 448. Find All Numbers Disappeared in an Array
- LeetCode 448. Find All Numbers Disappeared in an Array
- Elasticsearch 5.1.1 head 插件安装指南
- 浅析RPC远程过程调用基本原理
- 考研逻辑整理
- 初见CSDN
- Hadoop 学习研究(十): 自定义输入输出
- LeetCode#448. Find All Numbers Disappeared in an Array LeetCode#442. Find All Duplicates in an Array
- SpringMvc+MyBatis+MySQL+Maven+Redis搭建一个基础的web项目
- ubuntu 16.04 循环登录
- Django-manage.py
- 基于Spring AOP实现的声明式事务管理的知识点归纳
- 获取mac地址并以十六进制格式加冒号分隔显示
- WebView加载完成与显示完成
- zookeeper分布式锁
- 搭建自己的SS(Get~)