Поиск недостающего числа в целочисленном массиве (вопрос от geeksforgeeks.com)
Мне дан массив целых чисел, где целые числа отсортированы в порядке возрастания, а разница между соседними элементами равна единице, за исключением конкретной пары целых чисел, где разница равна двум. Я должен найти недостающее целое число. Я написал код и до сих пор не вижу в нем никаких проблем, но необходимый вывод не производится. Я хотел бы, чтобы вы помогли мне понять ошибку в моем коде.
Пример: 11 12 13 15
Недостающее число-14
Пример: 3 5 6 7
Недостающее число 4
Что я уже пробовал:
Это мой код. Я получаю вывод как 12 для приведенных ниже значений массива.
<pre>// ConsoleApplication2.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <iso646.h> #include <vector> #include <string> #include<iostream> #include <algorithm> using namespace std; int FindMissingNumber(vector<int>& nums) { int result = 0; //sort(nums.begin(), nums.end()); for (int i = 0; i < nums.size(); i++) { for (int j = i + 1; j < nums.size() - 1; j++) { if (nums[j] - nums[i] == 2) { result = (nums[i] + 1); } } } return result; } int main() { vector<int> nums = { 10, 11, 12, 13, 15 }; cout << FindMissingNumber(nums) << endl; system("pause"); return 0; }
Peter_in_2780
Большой намек. Вам нужна только одна петля.