leetcode第一题
    给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
    你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

    示例:

    给定 nums = [2, 7, 11, 15], target = 9

    因为 nums[0] + nums[1] = 2 + 7 = 9
    所以返回 [0, 1]

    暴力破解法就是双重for循环,逐一比对
    这里用空间换时间,一个for循环就行了

    1. import java.util.HashMap;
    2. import java.util.Map;
    3. //leetcode submit region begin(Prohibit modification and deletion)
    4. class Solution {
    5. public int[] twoSum(int[] nums, int target) {
    6. // 数值,下标
    7. Map<Integer, Integer> map = new HashMap<>(16);
    8. for (int i = 0; i < nums.length; i++) {
    9. //伙伴数 与当前下标的数的和满足目标数
    10. int partnerNum = target - nums[i];
    11. if (map.containsKey(partnerNum)) {
    12. return new int[]{map.get(partnerNum), i};
    13. }
    14. map.put(nums[i], i);
    15. }
    16. return null;
    17. }
    18. }