Faits: Faits: A. Par jugement du 8 décembre 2004, le Tribunal correctionnel du district de Neuchâtel (ci-après: le Tribunal correctionnel ou les premiers juges) a reconnu K._ coupable d'infractions graves à la loi sur les stupéfiants, pour avoir vendu 290 grammes de cocaïne à plusieurs toxicomanes entre le 1er janvier et le 31 décembre 2002. Il l'a condamné à deux ans et demi de réclusion et a ordonné son expulsion du territoire suisse pour une durée de huit ans, avec sursis pendant cinq ans. La Cour de cassation pénale du Tribunal cantonal de la République et canton de Neuchâtel (ci-après: la Cour de cassation pénale ou la cour cantonale) a rejeté le recours formé contre ce jugement par K._, en tant qu'il était recevable, au terme d'un arrêt rendu le 18 avril 2005. Elle a considéré en substance que le prévenu avait été condamné au terme d'une procédure conforme aux droits de la défense et d'une appréciation des preuves exempte d'arbitraire. La Cour de cassation pénale du Tribunal cantonal de la République et canton de Neuchâtel (ci-après: la Cour de cassation pénale ou la cour cantonale) a rejeté le recours formé contre ce jugement par K._, en tant qu'il était recevable, au terme d'un arrêt rendu le 18 avril 2005. Elle a considéré en substance que le prévenu avait été condamné au terme d'une procédure conforme aux droits de la défense et d'une appréciation des preuves exempte d'arbitraire. B. Agissant par la voie du recours de droit public, K._ demande au Tribunal fédéral d'annuler cet arrêt. Il dénonce une violation de son droit d'être entendu garanti à l'art. 6 § 3 let. d CEDH, une appréciation arbitraire des preuves et une violation du principe "in dubio pro reo" déduit des art. 32 al. 1 Cst. et 6 § 2 CEDH. Il requiert l'assistance judiciaire. La Cour de cassation pénale se réfère à son arrêt. Le Ministère public de la République et canton de Neuchâtel conclut au rejet du recours. 