Untitled

 avatar
unknown
plain_text
25 days ago
970 B
1
Indexable
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