Lando Norris won the Brazilian Grand Prix for McLaren and leads the drivers championship by 24 points from Oscar Piastri.