We present the recovery algorithm explicitly.\
\
**Hamiltonian Recovery Algorithm**\
$Input:$ The vector $(\pi(1),\pi(2),\cdots,\pi(n))$.\
$Output:$ A Hamiltonian cycle $(1,k_1,\cdots,k_{n-1},1)$.\
**Step 1:** Set $k_{n-1}=\pi(1)$;

         **For** $i=n-2$ to $1$

                  Set $a=\pi(k_{i+1})$;

                  **For** $j=k_{i+1}$ to $2$

                        **If** $a=\pi(j-1)-1$; Set $a=1$;

                        **Else** Set $a=a+1$;

                   **End**;

                  Set $k_{i}=a$;

         **End**;

         Goto Step 2;\
**Step 2:** Output $(1,k_1,\cdots,k_{n-1},1)$.\
For simplicity, let $HR(\pi)$ denote the output of the Hamiltonian Recovery Algorithm when the input is $\pi=(\pi(1),\pi(2),\cdots,\pi(n))$.\
\
****

One main tool in our algorithm is a generalized version of Bregman’s bound for the permanent below, which generalized an inequality of Soul [@So00] and proved in [@HL08]. For more application of other generalization of Bregman’s bound for designing new algorithms or improving efficiency of algorithms, we refer to [@LSW00; @Sa06]. Let $$g(r)=\left\{ \begin{aligned}
 r+(1/2)\log r+e-1,\ \ r\geq 1 \\
 1+(e-1)r,\ \ \ \ \ \ \ \ \ \ \ r\in[0,1].
\end{aligned} \right.$$\
\
**Lemma 5.** ([@HL08]) *Let $A$ be an $n\times n$ matrix with entries in $[0,1]$. Denote $r(i)$ the sum of row $i$ of $A$. Define $Br(A)=\prod\limits_{i=1}^{n}(g(r(i))/e)$, then $$Br(A)\geq \sum\limits_{i=1}^{n}A(i,1)Br(A_{i1}).$$ In particular, by Lemma 3, $\operatorname{per}(A)\leq Br(A)$.*\
\
Chernoff’s bound is useful in our algorithm, and one form of that is given bellow[@MR95].\
\
**Lemma 6.** *Let 