Estás cometiendo un error en tu primera pregunta.
LeetCode no es realmente importante para un ingeniero de software de ninguna manera. Casi todos los ingenieros de software nunca se enfrentan a preguntas similares a LeetCode en sus trabajos diarios. No vas a conseguir un aumento de sueldo o una promoción por tu habilidad para resolver estos rompecabezas.
Se puede decir que LeetCode es importante para la gente que busca un trabajo en este campo. Recién graduados, desempleados y demás. Eso también es un poco exagerado, ya que LeetCode no es el único sitio que puedes utilizar para desarrollar habilidades relacionadas con la resolución de este tipo de tareas, y no todas las empresas están haciendo este tipo de preguntas durante las entrevistas.
¿Por qué las universidades no te enseñan a resolver estos problemas? Por un lado – lo hacen. Durante los años de universidad deberías aprender algoritmos, estructuras de datos, etc., y deberías tener una idea de los conceptos básicos de la informática. Con estos conocimientos, para las preguntas de la entrevista que son «buenas» y no requieren que conozcas algunos trucos muy específicos que son difíciles de inventar por ti mismo, deberías ser capaz de resolverlas por ti mismo, o al menos de inventar varias ideas subóptimas para demostrar que tu cerebro es capaz de algo. Recuerdo cómo estaba discutiendo un problema con otro chico en Google durante mis prácticas, y cuando se le ocurrió alguna buena idea, le dije: «Sí, tiene sentido, esta la conozco de la programación competitiva… Pero pensaba que nunca habías hecho programación competitiva, ¿cómo la has conseguido?». Su respuesta fue: No se trata de programación competitiva, se trata de usar el sentido común.
Por otro lado – en la universidad probablemente no puedes esperar un curso enfocado específicamente a abordar este tipo de tareas. Honestamente, ni siquiera sé cuál es el objetivo principal de la educación universitaria – pero voy a suponer que tratan de enseñarte cosas necesarias para ser un buen ingeniero de software, en lugar de prepararte para la búsqueda de empleo. Ahora revisa el principio de mi respuesta – no necesitas LeetCode como ingeniero de software… Así que tiene sentido enseñarte algo más en su lugar, ¿no?