Maison >développement back-end >Tutoriel Python >Résoudre la tâche du défi hebdomadaire étape par étape en Python

Résoudre la tâche du défi hebdomadaire étape par étape en Python

Linda Hamilton
Linda Hamiltonoriginal
2025-01-04 12:29:35839parcourir

Solving the Weekly Challenge  Task Step by Step in Python

1. Présentation

Le Weekly Challenge, organisé par Mohammad S. Anwar, est une compétition amicale dans laquelle les développeurs s'affrontent en résolvant une paire de tâches. Il encourage la participation des développeurs de toutes langues et de tous niveaux à travers l'apprentissage, le partage et le plaisir.

Tâche 2 : Étape par étape du défi hebdomadaire oblige les développeurs à trouver une valeur de départ qui fait qu'une somme étape par étape n'est jamais inférieure à un.

Dans cet article, je discute et présente ma solution en langage Python pour la tâche 2 : étape par étape, et je termine par une brève conclusion.

2. Tâche 2 : étape par étape

Vous recevez un tableau d'entiers, @ints.

Écrivez un script pour trouver la valeur de départ positive minimale telle que la somme étape par étape ne soit jamais inférieure à un.

Le défi hebdomadaire 302, tâche 2 : étape par étape

Les exemples 1 à 3 présentent les résultats attendus à partir d'entrées données.

Exemple 1

Input: @ints = (-3, 2, -3, 4, 2)
Output: 5

Pour la valeur de départ 5.

5 + (-3) = 2
2 + (+2) = 4
4 + (-3) = 1
1 + (+4) = 5
5 + (+2) = 7

Exemple 2

Input: @ints = (1, 2)
Output: 1

Exemple 3

Input: @ints = (1, -2, -3)
Output: 5

3. Ma solution à la tâche 2

def return_min_start(ints: list[int]) -> int | None:
    for start_value in range(1, 1000000):
        step_sum = start_value + ints[0]
        if step_sum < 1:
            continue
        for index in range(1, len(ints)):
            step_sum += ints[index]
            if step_sum < 1:
                break
        if step_sum >= 1:
            return start_value
    return None

Ma solution utilise des boucles for et des instructions if pour rechercher progressivement la valeur start_value qui correspond aux exigences de la tâche :

  • Je recherche progressivement des valeurs de départ comprises dans la plage de [1, 1 000 000). Pour chaque start_value :
    • Je calcule la somme étape par étape (step_sum) de start_value et ints[0]. Si step_sum est inférieur à un, alors je recommence avec la prochaine start_value possible.
    • Je calcule step_sum pour les éléments restants de ints. Si step_sum est inférieur à un pour n'importe quel élément, alors je recommence avec la prochaine start_value possible.
    • Si la somme finale de step_sum pour start_value est supérieure à un, alors je renvoie start_value.
  • Si je ne trouve pas de start_value comprise entre [1, 1000000), alors je renvoie Aucun.

4. Conclusion

Dans cet article, j'ai discuté de la tâche 2 : étape par étape et j'ai présenté ma solution.

Apprenez-en plus sur les défis les plus récents et passés sur le site Web The Weekly Challenge :
https://theweeklychallenge.org/

En savoir plus sur la participation à la FAQ du Défi hebdomadaire :
https://theweeklychallenge.org/faq/

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn