main = do
  n <- readLn
  as <- map read . words <$> getLine
  let u = maximum as
      l = minimum as
      x = length $ filter (==u-1) as
  putStrLn $ if u==l && (n==u+1||u<=n`div`2)
    then "Yes"
    else if u-l>1||x>u||n-x==1||u>x+(n-x)`div`2 
      then "No" 
      else "Yes"