From 34d5936e26e67c1fb47b6458789ecf254e559641 Mon Sep 17 00:00:00 2001 From: Taufik Algi Fahri Date: Thu, 31 Oct 2019 20:35:08 +0700 Subject: [PATCH 1/4] add max sum contigous subsequence --- .../max_sum_contigous_subsequence.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 dynamic_programming/max_sum_contigous_subsequence.py diff --git a/dynamic_programming/max_sum_contigous_subsequence.py b/dynamic_programming/max_sum_contigous_subsequence.py new file mode 100644 index 000000000000..5cf267965e03 --- /dev/null +++ b/dynamic_programming/max_sum_contigous_subsequence.py @@ -0,0 +1,17 @@ +def maxSubArraySum(nums): + if not nums: return 0 + n = len(nums) + s = [0] * n + res, s, s_pre = nums[0], nums[0], nums[0] + for i in xrange(1, n): + s = max(nums[i], s_pre + nums[i]) + s_pre = s + res = max(res, s) + return res + +def main(): + nums = [6 , 9, -1, 3, -7, -5, 10] + print(maxSubArraySum(nums)) + +if __name__ == '__main__': + main() \ No newline at end of file From 73eb3aafa6955b7479a17ff2de5b0db17857ff2a Mon Sep 17 00:00:00 2001 From: Taufik Algi Fahri Date: Thu, 31 Oct 2019 20:37:27 +0700 Subject: [PATCH 2/4] fix typo --- dynamic_programming/max_sum_contigous_subsequence.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynamic_programming/max_sum_contigous_subsequence.py b/dynamic_programming/max_sum_contigous_subsequence.py index 5cf267965e03..978ee275d26b 100644 --- a/dynamic_programming/max_sum_contigous_subsequence.py +++ b/dynamic_programming/max_sum_contigous_subsequence.py @@ -3,7 +3,7 @@ def maxSubArraySum(nums): n = len(nums) s = [0] * n res, s, s_pre = nums[0], nums[0], nums[0] - for i in xrange(1, n): + for i in range(1, n): s = max(nums[i], s_pre + nums[i]) s_pre = s res = max(res, s) From acb3983843718183ca46ecfcf45e87e38a781251 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Thu, 31 Oct 2019 17:59:03 +0100 Subject: [PATCH 3/4] Add doctest and type hints --- .../max_sum_contigous_subsequence.py | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/dynamic_programming/max_sum_contigous_subsequence.py b/dynamic_programming/max_sum_contigous_subsequence.py index 978ee275d26b..2cbdb97a1759 100644 --- a/dynamic_programming/max_sum_contigous_subsequence.py +++ b/dynamic_programming/max_sum_contigous_subsequence.py @@ -1,17 +1,20 @@ -def maxSubArraySum(nums): - if not nums: return 0 - n = len(nums) - s = [0] * n - res, s, s_pre = nums[0], nums[0], nums[0] - for i in range(1, n): - s = max(nums[i], s_pre + nums[i]) - s_pre = s - res = max(res, s) - return res +def max_subarray_sum(nums: list) -> int: + """ + >>> max_subarray_sum([6 , 9, -1, 3, -7, -5, 10]) + 17 + """ + if not nums: + return 0 + n = len(nums) + s = [0] * n + res, s, s_pre = nums[0], nums[0], nums[0] + for i in range(1, n): + s = max(nums[i], s_pre + nums[i]) + s_pre = s + res = max(res, s) + return res -def main(): - nums = [6 , 9, -1, 3, -7, -5, 10] - print(maxSubArraySum(nums)) -if __name__ == '__main__': - main() \ No newline at end of file +if __name__ == "__main__": + nums = [6, 9, -1, 3, -7, -5, 10] + print(max_subarray_sum(nums)) From a59de1064fe62d142d9bb86ad6687e3f82eee236 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Thu, 31 Oct 2019 18:00:09 +0100 Subject: [PATCH 4/4] Create autoblack.yml --- .github/workflows/autoblack.yml | 34 +++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 .github/workflows/autoblack.yml diff --git a/.github/workflows/autoblack.yml b/.github/workflows/autoblack.yml new file mode 100644 index 000000000000..98310ac80b11 --- /dev/null +++ b/.github/workflows/autoblack.yml @@ -0,0 +1,34 @@ +# GitHub Action that uses Black to reformat the Python code in an incoming pull request. +# If all Python code in the pull request is complient with Black then this Action does nothing. +# Othewrwise, Black is run and its changes are committed back to the incoming pull request. +# https://github.com/cclauss/autoblack + +name: autoblack +on: [pull_request] +jobs: + build: + runs-on: ubuntu-latest + strategy: + max-parallel: 1 + matrix: + python-version: [3.7] + steps: + - uses: actions/checkout@v1 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v1 + with: + python-version: ${{ matrix.python-version }} + - name: Install psf/black + run: pip install black + - name: Run black --check . + run: black --check . + - name: If needed, commit black changes to the pull request + if: failure() + run: | + black . + git config --global user.name 'autoblack' + git config --global user.email 'cclauss@users.noreply.github.com' + git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/$GITHUB_REPOSITORY + git checkout $GITHUB_HEAD_REF + git commit -am "fixup: Format Python code with psf/black" + git push