Je viens d'avoir une question d'entretien sur la façon de concevoir une fonction simple - trouver le deuxième plus grand nombre dans un tableau Int.
int findSecondLargest(int * arr, int len){
int second = 0;
...
return second;
}
Cependant, on m'a posé les questions suivantes sur la façon dont je gère ces problèmes.
- Si len est inférieur à 2 (je pense que nous pouvons retourner une valeur spéciale, comme 0, ou MinInt.)
- Mais, si le deuxième plus grand est 0. (Puisque dans ce cas, je ne peux pas différencier entre une erreur et une valeur de retour normale. donc je pourrais lancer une exception)
- Si le tableau est {1,1,1} (puisque 1 est le plus grand nombre, et non le deuxième plus grand, je pourrais lancer une exception).
Je me sentais vraiment confus. Je pense qu'il n'est pas possible de faire face à toutes les situations. Nous devons généralement documenter l'utilisation de notre fonction, au lieu de lever une exception.
J'espère un conseil. Merci
//Le corps de la fonction est écrit par moi-même. J'aime beaucoup le design supposé par Donotalo et PigBen.