首页 » 编程之美 » 正文

[leetcode_268]Missing Number

给定数列中,从0-n,但是缺少一个数字i。求i为多少。

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

发表评论