package com.hust.ali.test;
import java.util.*;
/**
@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;
}
}
import java.util.*;
/**
@author Cat
/
public class TwoNumSum {
/
public int[] twoSum(int[] numbers, int target) {
IdentityHashMap hashNum = new IdentityHashMap();
Integer[] temp = new Integer[numbers.length];
for (int i = 0; i < temp.length; 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 != numbers.length) {
if (numbers[i] + numbers[j] == target) {
result[0] = (Integer) hashNum.get(temp[i]) + 1;
result[1] = (Integer) 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;
}
}
这是我写的Java代码,可以参考下
``
public class Solution {
public int[] twoSum(int[] nums, int target) {
int[] result = new int[2];
HashMap<Integer, Integer> t = new HashMap<Integer, Integer>();
for (int i = 0; i < nums.length; i++) {
t.put(nums[i], i);
}
for (int i = 0; i < nums.length; i++) {
int tmp = target - nums[i];
Integer index2 = t.get(tmp);
if (index2 != null) {
result[0]=i+1;
result[1]=index2+1;
if (result[0] < result[1]) {
break;
}
}
}
return result;
}
}
``