[leetcode268]Missing Number
来源:互联网 发布:美橙互联 域名转出 编辑:程序博客网 时间:2024/06/06 09:34
Question:
Given an array containing n distinct numbers taken from 0, 1, 2, ..., n
, find the one that is missing from the array.
For example,
Given nums = [0, 1, 3]
return 2
.
Note:
Your algorithm should run in linear runtime complexity. Could you implement it using only constant extra space complexity?
分析:
题目要求,给定一个数组,求解数组中缺少的一个数据,比如【0,1,2】缺少3,比如【0,1,5,4,3,】缺少2。
方法1:
总和求解,可以知道给定的数组加上缺少的数据,是个0~nums.size()中的数据,而缺少的极为其中一员,所以如果不缺少元素,那么数组的和是固定的:即0+1+2+3+。。。+nums.size();而缺少数据的数组总和也可以求出来,那么相减结果即为所求。
方法2:
可以知道给定的数组加上缺少的数据,是个0~nums.size()中的数据,那么可以声明一个大小为nums.size()+1的bool类型的数组,如果数据i在nums中出现,则令bool【i】=true,则可以知道,如果有个bool【m】== false,则缺少的就是m。
方法3:
暴力法,用vector的sort排序,即可知道缺少数据。
代码如下:
<span style="font-size:14px;">class Solution {public: int missingNumber(vector<int>& nums) { //用总和求解 int baseSum = 0; int numsSum = 0; /* for(int i : nums){ numsSum += i; }*/ for(int i = 0; i <= nums.size(); ++i){ if(i < nums.size()){ baseSum += i; numsSum += nums[i]; } else baseSum += i; } return baseSum-numsSum; //用bool变量判断出来哪个数据没有出现 /* vector<bool> b(nums.size()+1,false); for(int i = 0; i < nums.size(); ++i){ b[nums[i]] = true; } for(int i = 0; i < nums.size()+1; ++i){ if(!b[i]) return i; }*/ //暴力法 /*sort(nums.begin(),nums.end()); if(nums[0] == 0){ int i; for(i = 0; i < nums.size()-1; ++i){ if((nums[i]+1) != nums[i+1]) return nums[i]+1; } return i+1; } else return 0;*/ }};</span>
0 0
- leetcode268:Missing Number
- [leetcode268]Missing Number
- leetcode268 Missing Number
- leetcode268. Missing Number
- LeetCode268. Missing Number
- [LeetCode268]Missing Number
- LeetCode268之Missing Number
- leetcode268~Missing Number
- leetcode268. Missing Number
- leetcode268. Missing Number
- LeetCode268. Missing Number解题
- LeetCode268--Bit Manipulation--Missing Number找缺失的数
- LeetCode268——Missing Number相濡以沫不如相忘于江湖
- leetcode268
- Missing number
- Missing number
- Missing number
- Missing number
- java传值与传引用的三种情况
- 专业相框设计(ImageView的堆栈应用)
- bzoj2821 作诗(Poetize)
- 字符串匹配算法总结
- 2-5 Tutorials with python -> Topics
- [leetcode268]Missing Number
- Java判断字符串是否为空的几种方法
- 调试遇到的几个常见bug
- Computer Systems: A Programmer's Perspective --- 读书笔记2
- springMVC实现重定向
- 用 python 实现批处理文件
- No plugin found for prefix 'mybatis-genertor' in the current project
- 学习UML实现、泛化、依赖、关联、聚合、组合
- 2-6 Tutorials with python -> RPC