Find All Numbers Disappeared in an Array问题及解法
来源:互联网 发布:sprin 源码 编辑:程序博客网 时间:2024/05/29 13:36
问题描述:
Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and others appear once.
Find all the elements of [1, n] inclusive that do not appear in this array.
Could you do it without extra space and in O(n) runtime? You may assume the returned list does not count as extra space.
示例:Input:[4,3,2,7,8,2,3,1]Output:[5,6]问题分析:
首先明确一点,对于一个[1,n]的数组,每一个索引都能找到1到n的对应值,若是缺一个值,那为该值的索引就不能通过num[i]取到,所以求解步骤分为以下两步:
1.先求解哪些nums的索引不能通nums[i]取到(迭代求解nums[i]映射,将能映射到的值设置为负的值)
2.将不能取到的索引值添加进结果集
过程详见代码:
class Solution {public: vector<int> findDisappearedNumbers(vector<int>& nums) { int len = nums.size(); for(int i = 0; i < len; i++) { int m = abs(nums[i])-1; nums[m] = nums[m]>0 ? -nums[m] : nums[m];}vector<int> res; for(int i = 0; i < len; i++) { if(nums[i] > 0) res.push_back(i+1); } return res; }};
0 0
- Find All Numbers Disappeared in an Array问题及解法
- Find All Numbers Disappeared in an Array
- Find All Numbers Disappeared in an Array
- Find All Numbers Disappeared in an Array
- Find All Numbers Disappeared in an Array
- Find All Numbers Disappeared in an Array
- Find All Numbers Disappeared in an Array
- Find All Numbers Disappeared in an Array
- Find All Numbers Disappeared in an Array
- Find All Numbers Disappeared in an Array
- Find All Numbers Disappeared in an Array
- Find All Numbers Disappeared in an Array
- Find All Numbers Disappeared in an Array
- leetcode之 Find All Numbers Disappeared in an Array 问题
- leetcode 448Find All Numbers Disappeared in an Array (array)
- LeetCode-Array-448. Find All Numbers Disappeared in an Array
- LeetCode OJ|Array|Find All Numbers Disappeared in an Array
- LeetCode OJ|Array| Find All Numbers Disappeared in an Array
- [SMOJ1777]铺地砖
- APP安全报告第三期:您关心P2P理财交易平台的安全性吗?
- C.Primer.Plus(第六版)第五章编程练习
- MATLAB随机函数比较
- 配置tomcatserver.xml
- Find All Numbers Disappeared in an Array问题及解法
- NYOJ 722 数独
- 虚拟机编译代码是报 Cannot allocate memory Error
- LeetCode 338. Counting Bits
- linux下mysql开启远程访问权限及防火墙开放3306端口
- Vue从入门到精通(1)--前言、基础知识
- 常见的设计模式
- 字串的连接最长路径查找(使用TreeSet集合的比较器new Comparator(){ }:匿名内部类方法)
- JAVA 转 C++ 必记 PartB