【LeetCode】(268)Missing Number(Medium)
2015-08-24 15:23
363 查看
题目
Missing Number
Total Accepted: 1351 TotalSubmissions: 3840My Submissions
Question
Solution
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?
解析
很简单,如果vector中有n个数,那么理应有n+1个数,分别为0,1,2...n+1理应的和为(n+1)n/2
而事实上的和可以用线性时间算出,做差就得到少的那个数了。
class Solution { public: int missingNumber(vector<int>& nums) { int sum = 0; int sumReal = (nums.size()+1) * (nums.size())/2; for (int i = 0;i<nums.size();i++) sum += nums[i]; return sumReal - sum; } };
相关文章推荐
- Java如何处理大量的并发请求
- STL学习----入门(1)[algorithm]
- 编写高质量代码改善C#程序的157个建议——建议154:不要过度设计,在敏捷中体会重构的乐趣
- linux 防火墙
- Android平台aac谷歌软解框架和流程、解码库学习
- 操作系统几个概念
- 碎碎叨叨 - 其实有理
- 同页面多记录JS倒计时器
- 设计模式:单例模式的三种创建方式及其各自的优缺点
- opencv基础小程序大集合
- C++ 构造函数与析构函数详解(二)---自由存储 new和delete
- uva 11324 the largest clique (2-sat 二分答案)
- NYOJ 1068 ST(段树 为段更新+间隔总和)
- vc++创建文件目录
- C# VS 面向对象基础(一)
- Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)
- lamp搭建
- 迭代器模式(Iterator)
- CSS 字体代码
- c++回调函数, caffe新版本新用法