def max_sub_array_sum(arr: list[int], size: int) -> int: """ Finds the maximum sum of a subarray within the given array using Kadane's algorithm. Args: arr (list): The input array of numbers. size (int): The size of the array. Returns: int: The maximum sum of a subarray within the array. Example: >>> arr = [-2, -3, 4, -1, -2, 5, -3] >>> max_sub_array_sum(arr, len(arr)) 6 In this example, the input array is [-2, -3, 4, -1, -2, 5, -3]. The maximum sum of a subarray within this array is 6, which corresponds to the subarray [4, -1, -2, 5]. >>> arr = [-3, -4, 5, -1, 2, -4, 6, -1] >>> max_sub_array_sum(arr, len(arr)) 8 References: https://en.wikipedia.org/wiki/Maximum_subarray_problem """ max_till_now = arr[0] max_ending = 0 for i in range(size): max_ending = max_ending + arr[i] if max_ending < 0: max_ending = 0 elif max_till_now < max_ending: max_till_now = max_ending return max_till_now if __name__ == "__main__": import doctest doctest.testmod()