package com.hust.ali.test;
import java.util.*;
/**
- 给定一个整数数组,发现两个数字,使得它们添加到一个特定的目标数。
- 函数twoSum应返回两个数字,使得它们加起来的目标,其中索引1必须小于索引2的所有。
-
@author Cat
*
/
public class TwoNumSum {
/*-
@param args
*/
public static void main(String[] args) {
int[] num = {0,4,3,0,6,9};
TwoNumSum ts = new TwoNumSum();
int[] result = ts.twoSum (num, 7);
System.out.println(result[0]+" " + result[1]);
}
public int[] twoSum (int[] numbers,int target){
IdentityHashMap hashNum = new IdentityHashMap();
Integer[] temp = new Integer[numbers.length];for(int i=0;i temp[i] = new Integer(numbers[i]);
hashNum.put(temp[i] , i);
}
Arrays.sort(numbers);
Arrays.sort(temp);
int i = 0 , j = numbers.length - 1;
int[] result = new int[2];
while( i if( numbers[i] + numbers[j] == target ){
result[0] = hashNum.get(temp[i])+1;
result[1] = hashNum.get(temp[j])+1;
break;
}else if (numbers[i] + numbers[j] > target ){
j--;
}else if(i < numbers.length-1){
i++;
}
}
Arrays.sort(result);
return result;
}
}
-