#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1);
const int mod = 1000000007;
int qtde[100010];
vector<int> vet;
int main() {
  int n;
  scanf("%d", &n);
  memset(qtde, 0, sizeof(qtde));
  vet.resize(n);
  for (int i = 0; i < n; i++) scanf("%d", &vet[i]);
  sort(vet.begin(), vet.end());
  int m = vet[vet.size() - 1] - vet[0];
  if (m > n) {
    printf("NO\n");
    return 0;
  }
  for (int i = 0; i < vet.size(); i++) qtde[vet[i] - vet[0]]++;
  int flag = 1, L;
  qtde[0]--;
  L = qtde[0];
  for (int i = 1; i <= m; i++) {
    if (i == m) {
      if (qtde[i] != L + 1) flag = 0;
      break;
    }
    if (qtde[i] < L + 2) {
      flag = 0;
      break;
    }
    qtde[i] -= L + 2;
    L = qtde[i];
  }
  cout << (flag == 1 ? "YES" : "NO") << endl;
}
