How to print all distinct 4 elements from an array that have the same given sum in Java

1 Answer

0 votes
import java.util.Arrays;

public class MyClass {
    public static void getDistinct4Elements(int[] arr, int sum) {
    	Arrays.sort(arr);
    	
    	int size = arr.length;
    
    	for (int i = 0; i <= size - 4; i++) {
    		for (int j = i + 1; j <= size - 3; j++) {
    			int k = sum - (arr[i] + arr[j]);
    
    			int fromstart = j + 1;
    			int fromend = size - 1;
    
    			while (fromstart < fromend)	{
    				if (arr[fromstart] + arr[fromend] < k) {
    					fromstart++;
    				}
    
    				else if (arr[fromstart] + arr[fromend] > k) {
    					fromend--;
    				}
    
    				else {
    					System.out.print(arr[i] + ", " + arr[j] + ", ");
    					System.out.println(arr[fromstart] + ", " + arr[fromend]);
    					fromstart++;
    					fromend--;
    				}
    			}
    		}
    	}
    }
    public static void main(String args[]) {
      	int[] arr = {4, 8, 1, 5, 9, 0, 3, 7};

	    int sum = 18;

	    getDistinct4Elements(arr, sum);
    }
}





/*
run:
  
0, 1, 8, 9
0, 3, 7, 8
0, 4, 5, 9
1, 3, 5, 9
1, 4, 5, 8
  
*/

 



answered Aug 20, 2022 by avibootz
...