1.求数组中和为特定值的二个数
首先进行快速排序,然后遍历,令i=0;j=n-1;判断arr[i]+arr[j],进行相应的遍历。
for(int i=0,j=n-1;i<j;){ if(arr[i]+arr[j]==sum){ return (i,j); } else if(arr[i]+arr[j]<sum){ i++; } else{ j--; } return(-1,-1); }
求数组中和为特定值的三个数,双重循环,外层遍历i,内层遍历k,j;判断input[i]+input[j]+input[k]
public static void ReturnValue(int[] input,int sum){ int n=input.length; for(int i=0;i<n-1;){ for(int k=i+1,j=n-1;k<=j;){ if (input[i] + input[k] + input[j] == sum) { System.out.print(i+","+j+","+k+"\n"); break; } else if (input[i] + input[k] + input[j] < sum) { j--; } else { k++; } } i++; } //return new ReturnV(-1,-1,-1); }
浙公网安备 33010602011771号