s={1,3,5,6,7}
sum = 8 => {1,7} and {3,5}
2. Implementation
public List3. Similar Ones> void printPairsSums(int[] array, int sum) { List
> res = new ArrayList
>(); // validate the input //if ( array == null || array.length == 0) if ( array == null || array.length < 2 ) return res; Arrays.sort(array); int l = 0; int r = array.length-1; while( l < r ) { if (array[l] + array[r] == sum ) { List
item = new ArrayList<>(); item.add(array[l]); item.add(array[r]); res.add(item); l++; r--; // avoid duplicate //while( l < array.length && array[l] == array[l-1] ) while ( l < r && array[l] == array[l-1] ) l++; //while( r >= 0 && array[r] == array[r+1] ) while ( l < r && array[r] == array[r+1] ) r--; } else if ( array[l] + array[r] > sum ) r--; else l++; } return res; }
No comments:
Post a Comment