合計最大の領域を検索[Judge]
🎯 アルゴリズムの難題-合計最大の区間を検索
🤔 私の答え
📌 質問する
- 알고리즘 과제 > 합계가 가장 큰 구간 찾기
📌 名前の日付
2020.04.15
📌 試行回数
5회
💡 Code
def solution(nlist, left, right):
if left > right:
return float("-inf")
mid = (left + right) // 2
left_max = sum_num = 0
for i in range(mid - 1, left - 1, -1):
sum_num += nlist[i]
left_max = max(left_max, sum_num)
right_max = sum_num = 0
for i in range(mid + 1, right + 1):
sum_num += nlist[i]
right_max = max(right_max, sum_num)
left = solution(nlist, left, mid - 1)
right = solution(nlist, mid + 1, right)
return max(left_max + nlist[mid] + right_max, max(left, right))
# 입력 및 실행
for _ in range(int(input())):
num = int(input())
nlist = list(map(int, input().split()))
print(solution(nlist, 0, len(nlist) - 1))
💡 トラブルシューティング方法
left, right 중에 가장 큰 값
-left_max + mid + right_max
答えを間違える理由
-
💡 新知
Reference
この問題について(合計最大の領域を検索[Judge]), 我々は、より多くの情報をここで見つけました https://velog.io/@eunseokim/Judge-합계가-가장-큰-구간-찾기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol