Untitled
public class PartitionArrayEqualSum { public static boolean canPartition(int[] nums) { int totalSum = 0; for (int num : nums) { totalSum += num; } // If total sum is odd, we cannot split the array into two equal halves if (totalSum % 2 != 0) { return false; } int target = totalSum / 2; int prefixSum = 0; for (int i = 0; i < nums.length - 1; i++) { // Ensure non-empty subarrays prefixSum += nums[i]; if (prefixSum == target) { return true; } } return false; } public static void main(String[] args) { int[] nums = {1, 2, 3, 5}; System.out.println("Can partition: " + canPartition(nums)); // Output: true int[] nums2 = {1, 2, 3, 4, 5}; System.out.println("Can partition: " + canPartition(nums2)); // Output: false } }
Leave a Comment