Проверьте, можно ли создать массив со средним значением X, используя N элементов данного массива.

Опубликовано: 23 Февраля, 2023

Учитывая массив arr[] и два целых числа N и X , задача состоит в том, чтобы выяснить, возможно ли создать массив, используя N различных элементов из arr[] так, чтобы среднее значение вновь сформированного массива было равно X.

Примеры:

Input: N = 5,  X = 8, arr[] = {1, 10, 3, 2, 6, 7, 4, 5}
Output: YES
Explanation: Many arrays using 5 distinct elements from the array are possible like {10, 6, 7, 4, 5, 10, 10, 10, 10}

Input: N = 3, X = 4, arr[] = {9, 7, 5}
Output: NO
Explanation: There is no possible array by a given finite set. So the mean of the array becomes exact to X.Therefore, the answer is NO.

Подход: Реализуйте идею ниже, чтобы решить проблему:

It is always possible to make mean X from a given arr[] of the integer if it lies in between the minimum and maximum integer in an arr[]. Formally, if ( X >= MinValue &&  X <= MaxValue ) then, the answer will be YES only for those cases otherwise NO.

Были предприняты шаги для решения проблемы:

  1. Создайте целочисленную переменную min и сохраните минимальное значение в этой переменной, перебирая arr[] .
  2. Создайте целочисленную переменную max и сохраните максимальное значение в этой переменной, перебирая arr[] .
  3. если X находится в диапазоне минимального и максимального значения arr[], то напечатайте YES , иначе напечатайте NO .

Ниже приведена реализация описанного выше подхода.

Временная сложность: O(N)
Вспомогательное пространство: O(1)