This commit is contained in:
Harivansh Rathi 2025-12-14 17:15:37 -05:00
parent 76062021e9
commit c548626d7f
13 changed files with 570 additions and 1 deletions

View file

@ -0,0 +1,31 @@
"""
Two Sum
You are a cashier at a busy store. A customer wants to pay exactly
a target amount using exactly two items from their basket.
Given a list of item prices and a target total, find the indices
of the two items that add up to the target.
Example 1:
Input: prices = [2, 7, 11, 15], target = 9
Output: [0, 1]
Explanation: prices[0] + prices[1] = 2 + 7 = 9
Example 2:
Input: prices = [3, 2, 4], target = 6
Output: [1, 2]
Constraints:
- 2 <= len(prices) <= 10^4
- Each price is a positive integer
- Exactly one solution exists
"""
def two_sum(prices: list[int], target: int) -> list[int]:
"""Return indices of two prices that add up to target."""
for i in range(len(prices)):
for j in range(i+1, len(prices)):
if prices[i] + prices[j] == target:
return [i,j]

View file

@ -0,0 +1,35 @@
"""Tests for two-sum."""
import pytest
from solution import two_sum
class TestBasicCases:
"""Test basic functionality with typical inputs."""
def test_example_one(self):
"""Test first example from problem description."""
assert sorted(two_sum([2, 7, 11, 15], 9)) == [0, 1]
def test_example_two(self):
"""Test second example from problem description."""
assert sorted(two_sum([3, 2, 4], 6)) == [1, 2]
def test_adjacent_elements(self):
"""Test when answer elements are adjacent."""
assert sorted(two_sum([1, 2, 3, 4], 7)) == [2, 3]
class TestEdgeCases:
"""Test edge cases and boundary conditions."""
def test_same_value_twice(self):
"""Test with duplicate values that sum to target."""
assert sorted(two_sum([3, 3], 6)) == [0, 1]
def test_first_and_last(self):
"""Test when answer is first and last elements."""
assert sorted(two_sum([2, 4, 6, 8, 10, 7], 9)) == [0, 5]
def test_negative_numbers(self):
"""Test with negative numbers in the list."""
assert sorted(two_sum([-1, -2, -3, -4, -5], -8)) == [2, 4]