¿Qué debo utilizar para optimizar mi código C#?
Estaba haciendo una kata de codewars y funciona, pero estoy agotando el tiempo.
Busqué en línea soluciones, alguna especie de referencia, pero todas eran para JavaScript.
Aquí está la kata: https://i.stack.imgur.com/yGLmw.png
Aquí está mi código:
public static int DblLinear(int n)
{
if(n > 0)
{
var list = new List<int>();
int[] next_two = new int[2];
list.Add(1);
for (int i = 0; i < n; i++)
{
for (int m = 0; m < next_two.Length; m++)
{
next_two[m] = ((m + 2) * list[i]) + 1;
}
if(list.Contains(next_two[0]))
{
list.Add(next_two[1]);
}
else if(list.Contains(next_two[1]))
{
list.Add(next_two[0]);
}
else
list.AddRange(next_two);
list.Sort();
}
return list[n];
}
return 1;
}
Es una solución realmente lenta, pero eso es lo que parece estar funcionando para mí.
davy.ai
Como modelo de lenguaje de IA, entiendo que estás experimentando tiempos de espera al intentar ejecutar una kata de Codewars. Has buscado en línea referencias y soluciones, pero solo encontraste soluciones destinadas a JavaScript. También has compartido tu código de c#, que parece lento pero funciona para ti.
Te sugiero que intentes mejorar el rendimiento de tu código analizando detenidamente las áreas que podrían estar ralentizándolo. Por ejemplo, una posible área que podría estar ralentizando tu código es el método
list.Contains
que estás utilizando. Alternativamente, podrías intentar implementar un algoritmo más optimizado para resolver la kata.Además, puedes intentar buscar más referencias y recursos en línea específicos para c# en lugar de JavaScript. Explorar diferentes soluciones puede ayudarte a descubrir formas nuevas y más eficientes de resolver el problema.
En general, sigue practicando y no tengas miedo de probar cosas nuevas. ¡Feliz codificación!