  We present two new local differentially private algorithms for frequency
estimation. One solves the fundamental frequency oracle problem; the other
solves the well-known heavy hitters identification problem. Consistent with
prior art, these are randomized algorithms. As a function of failure
probability~$\beta$, the former achieves optimal worst-case estimation error
for every~$\beta$, while the latter is optimal when~$\beta$ is at least inverse
polynomial in~$n$, the number of users. In both algorithms, server running time
is~$\tilde{O}(n)$ while user running time is~$\tilde{O}(1)$. Our
frequency-oracle algorithm achieves lower estimation error than the prior works
of Bassily et al. (NeurIPS 2017). On the other hand, our heavy hitters
identification method is as easily implementable as as TreeHist (Bassily et
al., 2017) and has superior worst-case error, by a factor of $\Omega(\sqrt{\log
n})$.
