Two Sum(给定一个值,找出一个数组中“和”为该值的数值组合)

import java.util.HashMap;

/**
 * Two Sum
 *
 * Given an array of integers, find two numbers such 
 * that they add up to a specific target number.
 * The function twoSum should return indices of the
 * two numbers such that they add up to the target,
 * where index1 must be less than index2.
 * Please note that your returned answers (both index1 and index2) are not zero-based.
 *
 * You may assume that each input would have exactly one solution.
 *
 * Input:  numbers={2, 7, 11, 15}, target=9
 * Output:  index1=1, index2=2
 */
public class TwoSum {
    public static int[] twoSum(int[] numbers, int target) {
        if(numbers == null) return null;
        final HashMap set = new HashMap();
        for(int i=0; i i) {
                return new int[]{++i, ++value};
            } else if(value < i) {
                return new int[]{++value, ++i};
            }
        }
        return null;
    }

    public static void main(String[] args) {
        int[] arr = {2, 7, 11, 15};
        int[] result = twoSum(arr, 9);
        for(int i : result) {
            System.out.print(i + " ");
        }
    }
}

你可能感兴趣的:(Two Sum(给定一个值,找出一个数组中“和”为该值的数值组合))