import std.stdio, std.string, std.conv, std.algorithm;
import std.range, std.array, std.math, std.typecons, std.functional;

void main() {
    int n = readln.chomp.to!int;
    int[] a = readln.split.to!(int[]);

    int k = a.reduce!min, m = a.reduce!max;

    if (m - k > 1) {
        writeln("No");
        return;
    }

    if (k == m) {
        writeln(k == n - 1 || 2*k <= n ? "Yes" : "No");
    }
    else {
        int p = a.count(k).to!int;

        writeln(p <= k && 2*(k + 1 - p) <= n - p ? "Yes" : "No");
    }

}

void scan(T...)(ref T args) {
    auto line = readln.split;
    foreach (ref arg ; args) {
        arg = line.front.to!(typeof(arg));
        line.popFront();
    }
    assert(line.empty);
}