给定一个数列(未必按序排列)和一个整数,求这个数列中两个和为此整数的数的序号。假设一个数列中只会有一组解,并且一个数只能使用一次。
例子:
Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1].一种解法:
public class TwoSums {
public static int[] twosum(int num[], int sum) {
for(int i=0; i<num.length; i++) {
for(int j=i+1; j<num.length; j++) {
if(num[j]==sum - num[i]) {
System.out.println( num[i] + "," + num[j] );
return new int[] {i,j};
}else continue;
}
}
throw new IllegalArgumentException("No answer");
}
public static void main(String []args) {
int[] numbers= {1,4,7,9,12,20,26};
int mysum=16;
int[] result=TwoSums.twosum(numbers, mysum);
System.out.println(result[0] + "," + result[1]);
}
}
很简单,挨个遍历即可。由于最后直接丢了个异常,所以就不用一开始检查数组的长度了