From 01b38f0e591b23f5cf6d7affe5694c37f1694032 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=92=D0=B0=D1=81?= =?UTF-8?q?=D0=B8=D0=BB=D1=8C=D0=B5=D0=B2?= Date: Sun, 17 Aug 2025 09:51:17 +0300 Subject: [PATCH] [LeetCode #724] Find Pivot Index MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Тип: prefix sum Сложность: Временная сложность: O(n) Пространственная сложность: O(1) - Ссылка: https://leetcode.com/problems/find-pivot-index/ --- src/prefix_sum/find_pivot_index/__init__.py | 0 src/prefix_sum/find_pivot_index/solution.py | 15 +++++++++++++++ tests/test_find_pivot_index.py | 11 +++++++++++ 3 files changed, 26 insertions(+) create mode 100644 src/prefix_sum/find_pivot_index/__init__.py create mode 100644 src/prefix_sum/find_pivot_index/solution.py create mode 100644 tests/test_find_pivot_index.py diff --git a/src/prefix_sum/find_pivot_index/__init__.py b/src/prefix_sum/find_pivot_index/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/prefix_sum/find_pivot_index/solution.py b/src/prefix_sum/find_pivot_index/solution.py new file mode 100644 index 0000000..c0f7ae2 --- /dev/null +++ b/src/prefix_sum/find_pivot_index/solution.py @@ -0,0 +1,15 @@ +from typing import List + + +class Solution: + def pivotIndex(self, nums: List[int]) -> int: + left = 0 + right = sum(nums) + + for index, num in enumerate(nums): + right -= num + if left == right: + return index + left += num + + return -1 diff --git a/tests/test_find_pivot_index.py b/tests/test_find_pivot_index.py new file mode 100644 index 0000000..7180819 --- /dev/null +++ b/tests/test_find_pivot_index.py @@ -0,0 +1,11 @@ +import pytest +from src.prefix_sum.find_pivot_index.solution import Solution + + +@pytest.mark.parametrize( + "nums, expected", + [([1, 7, 3, 6, 5, 6], 3), ([1, 2, 3], -1), ([2, 1, -1], 0)], +) +def test_find_pivot_index(nums, expected): + solution = Solution() + assert solution.pivotIndex(nums) == expected