Spaces:
Sleeping
Sleeping
| from server.models import TaskInfo | |
| HARD_TASK = TaskInfo( | |
| task_id="hard-1", | |
| difficulty="hard", | |
| description="Optimize the function to find the maximum sum contiguous subarray (Kadane's algorithm). Current O(N^3) approach is too slow.", | |
| buggy_code="""def max_subarray_sum(arr): | |
| if not arr: return 0 | |
| max_sum = float('-inf') | |
| n = len(arr) | |
| for i in range(n): | |
| for j in range(i, n): | |
| current_sum = 0 | |
| for k in range(i, j + 1): | |
| current_sum += arr[k] | |
| if current_sum > max_sum: | |
| max_sum = current_sum | |
| return max_sum""", | |
| test_code=""" | |
| import unittest | |
| import random | |
| class TestHard(unittest.TestCase): | |
| def test_basic(self): | |
| self.assertEqual(max_subarray_sum([-2,1,-3,4,-1,2,1,-5,4]), 6) | |
| def test_all_negative(self): | |
| self.assertEqual(max_subarray_sum([-5, -2, -9]), -2) | |
| def test_empty(self): | |
| self.assertEqual(max_subarray_sum([]), 0) | |
| def test_large(self): | |
| # O(N^3) would take > 0.1s for N=300 in Python, but O(N) is < 0.01s | |
| random.seed(42) | |
| arr = [random.randint(-100, 100) for _ in range(300)] | |
| ans = max_subarray_sum(arr) | |
| self.assertIsInstance(ans, int) | |
| """, | |
| optimal_time_seconds=0.1 | |
| ) | |