diff --git a/data_structures/arrays/maximum_subarray_sum.py b/data_structures/arrays/maximum_subarray_sum.py new file mode 100644 index 000000000000..97151da2d28d --- /dev/null +++ b/data_structures/arrays/maximum_subarray_sum.py @@ -0,0 +1,26 @@ +def maximum_subarray_sum(arr): + """ + Finds the maximum sum of a contiguous subarray using Kadane's Algorithm + + Args: + arr (list of int): The input array + + Returns: + int: The maximum subarray sum + """ + + if not arr: + return 0 + + current_max_sum = max_sum = arr[0] + + for i in arr[1:]: + current_max_sum = max(i, current_max_sum + i) + max_sum = max(max_sum, current_max_sum) + + return max_sum + + +if __name__ == "__main__": + arr = [-2, 1, -3, 4, -1, 2, 1, -5, 4] + print("maximum subarray sum is: ", maximum_subarray_sum(arr)) diff --git a/greedy_methods/fractional_knapsack.py b/greedy_methods/fractional_knapsack.py index d52b56f23569..f7455a9c9fce 100644 --- a/greedy_methods/fractional_knapsack.py +++ b/greedy_methods/fractional_knapsack.py @@ -39,9 +39,11 @@ def frac_knapsack(vl, wt, w, n): return ( 0 if k == 0 - else sum(vl[:k]) + (w - acc[k - 1]) * (vl[k]) / (wt[k]) - if k != n - else sum(vl[:k]) + else ( + sum(vl[:k]) + (w - acc[k - 1]) * (vl[k]) / (wt[k]) + if k != n + else sum(vl[:k]) + ) ) diff --git a/matrix/matrix_class.py b/matrix/matrix_class.py index dee9247282f9..5efe0b0e09f3 100644 --- a/matrix/matrix_class.py +++ b/matrix/matrix_class.py @@ -204,9 +204,11 @@ def cofactors(self) -> Matrix: return Matrix( [ [ - self.minors().rows[row][column] - if (row + column) % 2 == 0 - else self.minors().rows[row][column] * -1 + ( + self.minors().rows[row][column] + if (row + column) % 2 == 0 + else self.minors().rows[row][column] * -1 + ) for column in range(self.minors().num_columns) ] for row in range(self.minors().num_rows)