Objectif On vous donne un tableau d'entiers, qui représentent les bénéfices nets mensuels d'une entreprise. L'entreprise souhaite que vous recherchiez la plus longue séquence de mois (ordonnés chronologiquement) dont le bénéfice augmente, et que vous retourniez la longueur.
La séquence peut contenir des mois non adjacents.
Implémentation Implémentez la méthode LongestProfit(data) qui prend comme entrée un tableau d'entiers ( data ), représentant des bénéfices mensuels consécutifs.
Par example : [-1, 9, 0, 8, -5, 6, -24]
Votre méthode LongestProfit doit renvoyer un nombre entier représentant la longueur de la plus longue séquence de bénéfices mensuels croissants.
Pour l'exemple ci-dessus, la sortie correcte serait le nombre entier suivant : 3 (la séquence pourrait être [-1, 0, 6] ou [-1, 0, 8] ).
using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static void Main()
{
int[] seq = new int[] { -1, 9, 0, 8, -5, 6, -24 };
var result = longestSeq3(seq);
foreach(var i in result){
Console.WriteLine(i);
}
}
private static List<int> longestSeq3(int[] seq)
{
int maxDist = 2;
List<int> result = new List<int>();
for (int i = 0; i < seq.Length; i++)
{
int current = seq[i];
int dist = Math.Abs(i - current);
if (dist >= 0 && dist <= maxDist)
{
if (result.Count > 0 && current <= result.Last())
{
continue;
}
result.Add(current);
}
}
return result;
}
}
Aucun commentaire:
Enregistrer un commentaire