Move History

Fork Selected
  • Description

    Given an array of n distinct integers in the range [0, n], find the missing integer.

    Code
    #include <vector>
    #include <numeric>
    using namespace std;
    int missingNumber(vector<int> nums) {
      return (nums.size() * (nums.size() + 1))/2 - accumulate(nums.begin(), nums.end(), 0);
    }
    Test Cases
    #include <criterion/criterion.h>
    
    int missingNumber(std::vector<int> nums);
    
    Test(findMissingNumber, should_return_5_for_given_array) {
    std::vector<int> arr{0, 1, 2, 3, 4, 6, 7, 8, 9, 10};
    cr_assert_eq(missingNumber(arr), 5);
    }
    
    Test(findMissingNumber, should_return_2_for_given_array) {
    std::vector<int> arr{0, 1, 3, 4, 5};
    cr_assert_eq(missingNumber(arr), 2);
    }
  • Code
    • #include <vector>
    • #include <algorithm>
    • #include <numeric>
    • using namespace std;
    • int missingNumber(vector<int> nums) {
    • nums.push_back(nums.size());
    • for (int i = 0; i < static_cast<int>(nums.size()); i++) {
    • if (find(nums.begin(), nums.end(), i) == nums.end()) return i;
    • }
    • return nums.size() - 1;
    • return (nums.size() * (nums.size() + 1))/2 - accumulate(nums.begin(), nums.end(), 0);
    • }