1)排序,然后两个指针一前一后。用哈希树保存原数组的数字和指标与得到的值进行比较找出原数组的指标
-
- public class Solution {
- Arrays.sort(numbers);
- int flag = 0;
- int index[]=new int[2];
- int idx1=0;
- int idx2=numbers.length-1;
- while(numbers[idx1]+numbers[idx2]!=target){
- if(numbers[idx1]+numbers[idx2]<target){
- idx1+=1;
- }
- if(numbers[idx1]+numbers[idx2]>target){
- idx2-=1;
- }
- if(idx1==idx2){
- break;
- }
- }
- int a=numbers[idx1];
- int b=numbers[idx2];
- for(int i=0;i<numbers.length;i++){
- if(a==map.get(i)||b==map.get(i)) {
- flag=i;
- index[0]=i+1;
- break;
- }
- }
- for(int j=flag+1;j<numbers.length;j++){
- if(b==map.get(j)||a==map.get(j)){
- index[1]=j+1;
- }
- }
- return index;
- }
- }