SSpanKestrel
AIコーディングワークスペース

連続区間の最大和

絶対値が10億以下の整数最大1000個から最大の連続和を探し、和と終端を含まない境界を返します。

● ● ●SpanKestrel●
ワークフロー · 連続区間の最大和 ×
def maximum_subarray(values):
    if type(values) not in (list, tuple) or len(values) > 1000 or any(type(v) is not int or abs(v) > 10**9 for v in values):
        raise ValueError("subarray.input")
    if not values:
        return None
    best = None
    total, start = 0, 0
    for end, value in enumerate(values, 1):
        if total < 0:
            total, start = 0, end - 1
        total += value
        candidate = (total, start, end)
        if best is None or (-total, start, end) < (-best[0], best[1], best[2]):
            best = candidate
    return best
✳絶対値が10億以下の整数最大1000個から最大の連続和を探し、和と終端を含まない境界を返します。
✓ 変更内容適用前に確認 ↗
ワークスペースのイメージ
モデル
OpenAI互換またはAnthropicのエンドポイントを、ベースURLと必要なAPIキーで設定し、接続をテストします。ローカルのモデルサーバーは起動が必要です。リモートツールは別途データを送信する場合があります。
プロジェクト
全要素が負の場合と空入力を試し、同点では開始位置、次に終了位置の早さで決めます。
適用前に確認
実際の動作を期待する結果と比較します。検証に失敗した場合は、次の変更を加える前に原因を調べてください。
ワークフロー

連続区間の最大和

ワークフロー ↗
ワークフロー
def maximum_subarray(values):
    if type(values) not in (list, tuple) or len(values) > 1000 or any(type(v) is not int or abs(v) > 10**9 for v in values):
        raise ValueError("subarray.input")
    if not values:
        return None
    best = None
    total, start = 0, 0
    for end, value in enumerate(values, 1):
        if total < 0:
            total, start = 0, end - 1
        total += value
        candidate = (total, start, end)
        if best is None or (-total, start, end) < (-best[0], best[1], best[2]):
            best = candidate
    return best
AIコーディングワークスペース

次のアイデアはここから。

Windows版をダウンロード ↗