From
ref/LeastSquares:
The vector x is uniquely determined by the minimization only if Length[ x ] == MatrixRank[ m ].
Since the rank is less than 3 (the length of x required by the dimensions of m) ---
In[1]:= m = {{0.447214 - 0.894427 I, 0, -0.447214 + 0.894427 I}, {0,
0. - 1. I, 0. + 1. I}, {1., -1., 0}};
In[2]:= b = {-77.6393, -80., -89.95};
In[3]:= MatrixRank@m
Out[3]= 2
--- it's possible to get two different yet equally minimizing solutions:
In[4]:= {x1, x2} = {LeastSquares[m, b], LeastSquares[SparseArray@m, b]};
In[5]:= Norm[m.x1 - b]
Out[5]= 32.4636
In[6]:= Norm[m.x2 - b]
Out[6]= 32.4636
The difference in the solution vectors could be due to differences in the methods used for dense input matrices and sparse input matrices. From ref/LeastSquares:
A Method option can also be given. Settings for arbitrary-precision numerical matrices include "Direct" and "IterativeRefinement", and for sparse arrays "Direct" and "Krylov". The default setting of Automatic switches between these methods, depending on the matrix given.