Girth of Undirected Graph with Positive Integer Weights
Use an all-pairs shortest-paths algorithm to find the distance from each vertex to each other vertex, call it $d(u,v)$.  Now find the minimum value of $d(v,v)$ over all vertices $v$.  That is the length of the shortest cycle.

Why does this work?  Suppose the shortest cycle from $v$ to $v$ has length $\ell$.  Obviously we will have $d(v,v) \le \ell$ (since we have a path from $v$ to $v$ of length $\ell$, the shortest such path is at most $\ell$).  Conversely, we know there is a path of length $d(v,v)$ from $v$ to $v$; since it goes from $v$ to $v$, this is a cycle; so the length $\ell$ of the shortest cycle must satisfy $\ell \le d(v,v)$.  We have proven both $d(v,v) \le \ell$ and $\ell \le d(v,v)$, so it follows that $\ell = d(v,v)$.