【LeetCode-448】 Find All Numbers Disappeared in an Array(C++)
来源:互联网 发布:山东鼎信网络充值 编辑:程序博客网 时间:2024/05/29 16:24
题目要求:给出一个整形数组,长度为n,数组中的整数都在1~n之间,有些数出现一次,有些数出现两次,求出那些没出现的数的集合。
问题解答:
1.时间复杂度为O(n),空间复杂度为O(n)的做法。定义一个长度为n的数组temp,全都初始化为0。然后遍历给出的数组,令temp[nums[i]-1]=-1。最后遍历数组temp,那些值为0的数的位置加上1就是所要求的没有出现的数。
class Solution {public: vector<int> findDisappearedNumbers(vector<int>& nums) { int l=nums.size(); vector<int> temp(l,0); vector<int> result; for(int i=0;i<l;i++){ temp[nums[i]-1]=-1; } for(int i=0;i<l;i++){ if(temp[i]==0) result.push_back(i+1); } return result; }};2.时间复杂度为O(n),空间复杂度为O(1)的做法。(符合题目要求的做法,没有使用多余空间)。遍历数组,索引为i,将nums[i]-1所在的位置的数置为负数。再次遍历数组,索引为index,对于每个数组值,如果为负数,就代表index+1这个数已经出现过了,如果为正数,代表没出现过,放到要返回的数组里面。
class Solution {public: vector<int> findDisappearedNumbers(vector<int>& nums) { int l=nums.size(); vector<int> result; for(int i=0;i<l;i++){ int m=abs(nums[i])-1; nums[m]=nums[m]>0?-nums[m]:nums[m]; } for(int i=0;i<l;i++){ if(nums[i]>0) result.push_back(i+1); } return result; }};
0 0
- 【LeetCode-448】 Find All Numbers Disappeared in an Array(C++)
- leetcode 448Find All Numbers Disappeared in an Array (array)
- LeetCode No.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 C++
- 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
- [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
- HTTP协议详解
- 显示注册的单一数据,用session取得
- iOS开发:对于AFNetworking HTTP转HTTPS请求证书问题
- 【LDA|ML】西瓜书习题3.4
- 张维迎:别让套利机会主义者,扼杀了企业家精神
- 【LeetCode-448】 Find All Numbers Disappeared in an Array(C++)
- 8 种 NoSQL 数据库系统对比
- 揭秘微信红包:架构、抢红包算法、高并发和降级方案
- [gitbook] Android框架分析系列之Android stagefright框架
- mysql中数据的存储范围
- STM32中断优先级分组概念
- 数据库事务的四大特性
- c语言==判断一个数是否为2的整数次方【不使用循环】(23)
- 系统负载能力浅析