关闭

268. Missing Number

108人阅读 评论(0) 收藏 举报
分类:

题目

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?

分析

数组中的n个数是乱序排列的,但由于知道是从0到n中取出的n个不同的数,故可以通过等差数列公式计算出0到n的总和,然后遍历数组去减掉数组中元素,剩余的就是缺少的值。

class Solution {
public:
    int missingNumber(vector<int>& nums) {
        int sum=(1+nums.size())*nums.size()/2;
        for(int i=0;i<nums.size();++i)
            sum-=nums[i];
        return sum;
    }
};


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:47318次
    • 积分:1866
    • 等级:
    • 排名:千里之外
    • 原创:146篇
    • 转载:0篇
    • 译文:0篇
    • 评论:6条
    文章分类
    最新评论