#include <bits/stdc++.h>
using namespace std;
int n;
int s[100005], num[100005];
bool cmp(int a, int b) { return a < b; }
int main() {
  while (scanf("%d", &n) != EOF) {
    int i;
    for (i = 0; i < n; i++) scanf("%d", &s[i]);
    sort(s, s + n, cmp);
    bool flag = true;
    for (i = 1; i < n - 1; i++) {
      if (s[i] == s[i - 1]) continue;
      if (s[i] != s[i - 1] + 1) flag = false;
      if (s[i] == s[i - 1] + 1 && s[i] == s[i + 1] - 1) flag = false;
    }
    if (s[n - 1] != s[n - 2] && s[n - 1] != s[n - 2] + 1) flag = false;
    if (!flag) {
      printf("NO\n");
      continue;
    }
    int ma = 0;
    memset(num, 0, sizeof(num));
    for (i = 0; i < n; i++) {
      num[s[i] - s[0] + 1]++;
      ma = max(s[i] - s[0] + 1, ma);
    }
    num[1]--;
    num[ma]--;
    for (i = 2; i < ma; i++) num[i] -= 2;
    for (i = 1; flag && i < ma; i++) {
      if (num[i] > 0 && num[i + 1] < num[i]) flag = false;
      num[i + 1] -= num[i];
      num[i] = 0;
    }
    if (num[ma] > 0) flag = false;
    if (!flag)
      printf("NO\n");
    else
      printf("YES\n");
  }
  return 0;
}
