【LeetCode】645. Set Mismatch
来源:互联网 发布:linux curl get请求 编辑:程序博客网 时间:2024/06/05 14:21
The set S originally contains numbers from 1 to n. But unfortunately, due to the data error, one of the numbers in the set got duplicated to another number in the set, which results in repetition of one number and loss of another number.
Given an array nums representing the data status of this set after the error. Your task is to firstly find the number occurs twice and then find the number that is missing. Return them in the form of an array.
Example 1:
Input: nums = [1,2,2,4]
Output: [2,3]
Note:
The given array size will in the range [2, 10000].
The given array’s numbers won’t have any order.
求1-n中 重复的和缺少的一个数。
方法1,很容易想到。
class Solution {public: int a[10001]; vector<int> findErrorNums(vector<int>& nums) { int n=nums.size(); for(int i=0;i<n;i++)a[nums[i]]++; vector<int> ans; for(int i=1;i<=n;i++){ if(a[i]==2)ans.push_back(i); } for(int i=1;i<=n;i++){ if(a[i]==0)ans.push_back(i); } return ans; }};
然而这种需要额外的开辟0(N)的空间,应该进行优化。
方法2:
利用原有的数组,数字出现过就把对应的位置数字变成负数。
最后还是正数的就是缺少的数字。
class Solution {public: vector<int> findErrorNums(vector<int>& nums) { int n=nums.size(); vector<int> ans; for(int i=0;i<n;i++){ int t=abs(nums[i])-1; if(nums[t]>0){ nums[t]*=-1; }else{ ans.push_back(t+1); } } for(int i=0;i<n;i++){ if(nums[i]>0){ ans.push_back(i+1); break; } } return ans; }};
- leetcode 645. Set Mismatch
- [LeetCode]645. Set Mismatch
- 【LeetCode】645. Set Mismatch
- LeetCode 645. Set Mismatch
- leetcode 645. Set Mismatch
- [LeetCode]645. Set Mismatch
- leetcode 645. Set Mismatch
- Leetcode 645. Set Mismatch 找缺值 解题报告
- LeetCode 645 Set Mismatch
- Leetcode 645 Set Mismatch
- leetcode--645--Set Mismatch
- 645. Set Mismatch
- 645. Set Mismatch
- 645. Set Mismatch
- 645. Set Mismatch
- 645. Set Mismatch
- 645. Set Mismatch
- 2017.12.25 LeetCode 645. Set Mismatch 【思维查找】
- Python中*和**的使用
- Pat(A) 1084. Broken Keyboard (20)
- JSON.parse问题(转)
- Atitit.每周计划日程表 流程表 v9 r829.docx
- Atitit 常见每日流程日程日常工作.docx v8 verampmimp 签到amy 天气情况检查amy 晨会,每天或者隔天am 每日计划(项目计划,日计划等。am
- 【LeetCode】645. Set Mismatch
- Struts2工作原理与Struts2工作流程
- ubuntu 配置java环境变量 修改/etc/environment 导致,登录界面进不去了
- Atitit.月度计划日程表 每月流程表v5
- HDU 3046 Pleasant sheep and big big wolf(SAP,Dinic模板)
- 卓美业网拓软件内测(第一波)初体验
- MySQL管理之道_ 性能调优、高可用与监控(第2版)-by 贺春畅-读书笔记
- 后台菜单
- Android IPC之 Messenger