java输出递增序列中不重复的两个数和等于某个给定的值.
例如给定一个数组{2, 2, 3, 4, 5, 5}, sum = 7, 求所有两个数和等于7
- public class FindTwoNumberSum {
- public static void findSum(int [] a, int sum){
- int i=0, j=a.length-1, preI=-1, preJ=-1;
- while(i<j){
- int tmp = a[i] + a[j];
- if(tmp==sum&&(a[i]!=preI||a[j]!=preJ)){
- System.out.println(a[i]+” , ”+a[j]);
- if(a[i]!=preI){
- preI = a[i];
- preJ = a[j];
- i++;
- }else{
- preI=a[i];
- preJ=a[j];
- j–;
- }
- }else if(tmp<sum){
- preI = a[i++];
- preJ = a[j];
- }else{
- preI = a[i];
- preJ = a[j--];
- }
- }
- }
- public static void main(String [] args){
- int [] a = {2, 2, 3, 4, 5, 5};
- findSum(a, 7);
- }
- }