首頁 > 後端開發 > Python教學 > 用 Python 逐步解決每週挑戰任務

用 Python 逐步解決每週挑戰任務

Linda Hamilton
發布: 2025-01-04 12:29:35
原創
841 人瀏覽過

Solving the Weekly Challenge  Task Step by Step in Python

一、簡介

每週挑戰賽由 Mohammad S. Anwar 組織,是一場友好的競賽,開發者透過解決兩個任務進行競爭。它鼓勵所有語言和級別的開發者透過學習、分享和娛樂來參與。

每週挑戰中的任務 2:逐步要求開發者找出起始值,使逐步總和永遠不會小於 1。

在這篇文章中,我討論並展示了我的 Python 語言解決方案,任務 2:一步一步,並總結了一個簡短的結論。

2. 任務 2:循序漸進

給你一個整數數組,@ints。

寫一個腳本來找出最小正起始值,使得逐步總和永遠不會小於 1。

每週挑戰 302,任務 2:一步一步

範例 1 - 3 展示了給定輸入的預期輸出。

實施例1

Input: @ints = (-3, 2, -3, 4, 2)
Output: 5
登入後複製

起始值為 5

5 + (-3) = 2
2 + (+2) = 4
4 + (-3) = 1
1 + (+4) = 5
5 + (+2) = 7
登入後複製

實施例2

Input: @ints = (1, 2)
Output: 1
登入後複製

實施例3

Input: @ints = (1, -2, -3)
Output: 5
登入後複製

3.我對任務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
登入後複製

我的解決方案使用 for 迴圈和 if 語句來增量搜尋與任務要求相符的 start_value:

  • 我逐步搜尋 [1, 1000000) 範圍內的起始值。對於每個 start_value:
    • 我計算start_value和ints[0]的逐步和(step_sum)。 如果 step_sum 小於 1,則我從下一個可能的 start_value 開始。
    • 我計算剩餘整數元素的step_sum。如果任何元素的 step_sum 都小於 1,那麼我會從下一個可能的 start_value 開始。
    • 如果 start_value 的最終 step_sum 大於 1,則傳回 start_value。
  • 如果我沒有找到 [1, 1000000) 範圍內的 start_value,那麼我回傳 None。

4. 結論

在這篇文章中,我討論了任務 2:一步一步,並提出了我的解決方案。

在每週挑戰網站上了解有關最新和過去挑戰的更多資訊:
https://theweeklychallenge.org/

了解更多有關參加每週挑戰常見問題的資訊:
https://theweeklychallenge.org/faq/

以上是用 Python 逐步解決每週挑戰任務的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板