3D urban UAV relay placement: Linear complexity algorithm and analysis