LeetCode -1.两数之和

Evernote Export

LeetCode- 1. 两数之和

题目

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

思考

  • 正向思维:
    • 要想得到target,就需要事先确定两个值,假设为num[i]num[j]
    • 由于题意说每种输入只会对应一个答案,则说明这两个值处于整数数组的不同位置。
    • 所以使用两层循环依次遍历,即可确定在哪两个位置的整数之和等于target.
  • 逆向思维:
    • target是已知的,减去一个整数num[i],就能求出另一个整数,假设为tmp.
    • 如果tmp在数组中,就能找到答案.

题解 1

class Solution {
    public int[] twoSum(int[] nums, int target) {
        int[] res = new int[2];
        for(int i = 0; i < nums.length; i ++) {
            for(int j = i + 1; j < nums.length; j ++) {
                if(nums[i] + nums[j] == target) {
                    res[0] = i;
                    res[1] = j;
                    break;
                }
            }
        }
        return res;
    }
}

题解 2

class Solution {
    public int[] twoSum(int[] nums, int target) {
        Map<Integer, Integer> map = new HashMap<Integer, Integer>();
        int[] res = new int[2];
        for(int i = 0; i < nums.length; i ++) {
            map.put(nums[i], i);
        }
        for(int i = 0; i < nums.length; i ++) {
            int tmp = target - nums[i]; 
            if(map.containsKey(tmp) && map.get(tmp) != i) {
                res[0] = i;
                res[1] = map.get(tmp);
                break;
            }
        }
        return res;
    }
}
%23%23%23%23%20LeetCode-%201.%20%E4%B8%A4%E6%95%B0%E4%B9%8B%E5%92%8C%0A%0A%23%23%23%23%20%E9%A2%98%E7%9B%AE%0A%0A%3E%60%E7%BB%99%E5%AE%9A%E4%B8%80%E4%B8%AA%E6%95%B4%E6%95%B0%E6%95%B0%E7%BB%84%20nums%C2%A0%E5%92%8C%E4%B8%80%E4%B8%AA%E7%9B%AE%E6%A0%87%E5%80%BC%20target%60%EF%BC%8C%E8%AF%B7%E4%BD%A0%E5%9C%A8%E8%AF%A5%E6%95%B0%E7%BB%84%E4%B8%AD%E6%89%BE%E5%87%BA%E5%92%8C%E4%B8%BA%E7%9B%AE%E6%A0%87%E5%80%BC%E7%9A%84%E9%82%A3%C2%A0%E4%B8%A4%E4%B8%AA%C2%A0%E6%95%B4%E6%95%B0%EF%BC%8C%60%E5%B9%B6%E8%BF%94%E5%9B%9E%C2%B7%E4%BB%96%E4%BB%AC%E7%9A%84%E6%95%B0%E7%BB%84%E4%B8%8B%E6%A0%87%60%E3%80%82%0A%E4%BD%A0%E5%8F%AF%E4%BB%A5%E5%81%87%E8%AE%BE%60%E6%AF%8F%E7%A7%8D%E8%BE%93%E5%85%A5%E5%8F%AA%E4%BC%9A%E5%AF%B9%E5%BA%94%E4%B8%80%E4%B8%AA%E7%AD%94%E6%A1%88%60%E3%80%82%E4%BD%86%E6%98%AF%EF%BC%8C%E4%BD%A0%E4%B8%8D%E8%83%BD%E9%87%8D%E5%A4%8D%E5%88%A9%E7%94%A8%E8%BF%99%E4%B8%AA%E6%95%B0%E7%BB%84%E4%B8%AD%E5%90%8C%E6%A0%B7%E7%9A%84%E5%85%83%E7%B4%A0%E3%80%82%0A%0A%23%23%23%23%20%E6%80%9D%E8%80%83%0A-%20%E6%AD%A3%E5%90%91%E6%80%9D%E7%BB%B4%EF%BC%9A%0A%20%20%20%20-%20%E8%A6%81%E6%83%B3%E5%BE%97%E5%88%B0target%EF%BC%8C%E5%B0%B1%E9%9C%80%E8%A6%81%E4%BA%8B%E5%85%88%E7%A1%AE%E5%AE%9A%E4%B8%A4%E4%B8%AA%E5%80%BC%EF%BC%8C%E5%81%87%E8%AE%BE%E4%B8%BA%24num%5Bi%5D%24%E3%80%81%24num%5Bj%5D%24%0A%20%20%20%20-%20%E7%94%B1%E4%BA%8E%E9%A2%98%E6%84%8F%E8%AF%B4%E6%AF%8F%E7%A7%8D%E8%BE%93%E5%85%A5%E5%8F%AA%E4%BC%9A%E5%AF%B9%E5%BA%94%E4%B8%80%E4%B8%AA%E7%AD%94%E6%A1%88%EF%BC%8C%E5%88%99%E8%AF%B4%E6%98%8E%E8%BF%99%E4%B8%A4%E4%B8%AA%E5%80%BC%E5%A4%84%E4%BA%8E%E6%95%B4%E6%95%B0%E6%95%B0%E7%BB%84%E7%9A%84%E4%B8%8D%E5%90%8C%E4%BD%8D%E7%BD%AE%E3%80%82%0A%20%20%20%20-%20%E6%89%80%E4%BB%A5%E4%BD%BF%E7%94%A8%E4%B8%A4%E5%B1%82%E5%BE%AA%E7%8E%AF%E4%BE%9D%E6%AC%A1%E9%81%8D%E5%8E%86%EF%BC%8C%E5%8D%B3%E5%8F%AF%E7%A1%AE%E5%AE%9A%E5%9C%A8%E5%93%AA%E4%B8%A4%E4%B8%AA%E4%BD%8D%E7%BD%AE%E7%9A%84%E6%95%B4%E6%95%B0%E4%B9%8B%E5%92%8C%E7%AD%89%E4%BA%8Etarget.%0A-%20%E9%80%86%E5%90%91%E6%80%9D%E7%BB%B4%3A%0A%20%20%20%20-%20target%E6%98%AF%E5%B7%B2%E7%9F%A5%E7%9A%84%EF%BC%8C%E5%87%8F%E5%8E%BB%E4%B8%80%E4%B8%AA%E6%95%B4%E6%95%B0%24num%5Bi%5D%24%EF%BC%8C%E5%B0%B1%E8%83%BD%E6%B1%82%E5%87%BA%E5%8F%A6%E4%B8%80%E4%B8%AA%E6%95%B4%E6%95%B0%2C%E5%81%87%E8%AE%BE%E4%B8%BA%24tmp%24.%0A%20%20%20%20-%20%E5%A6%82%E6%9E%9Ctmp%E5%9C%A8%E6%95%B0%E7%BB%84%E4%B8%AD%EF%BC%8C%E5%B0%B1%E8%83%BD%E6%89%BE%E5%88%B0%E7%AD%94%E6%A1%88.%0A%0A%23%23%23%23%20%E9%A2%98%E8%A7%A3%201%0A%60%60%60java%0Aclass%C2%A0Solution%C2%A0%7B%0A%C2%A0%C2%A0%C2%A0%C2%A0public%C2%A0int%5B%5D%C2%A0twoSum(int%5B%5D%C2%A0nums%2C%C2%A0int%C2%A0target)%C2%A0%7B%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0int%5B%5D%C2%A0res%C2%A0%3D%C2%A0new%C2%A0int%5B2%5D%3B%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0for(int%C2%A0i%C2%A0%3D%C2%A00%3B%C2%A0i%C2%A0%3C%C2%A0nums.length%3B%C2%A0i%C2%A0%2B%2B)%C2%A0%7B%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0for(int%C2%A0j%C2%A0%3D%C2%A0i%C2%A0%2B%C2%A01%3B%C2%A0j%C2%A0%3C%C2%A0nums.length%3B%C2%A0j%C2%A0%2B%2B)%C2%A0%7B%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0if(nums%5Bi%5D%C2%A0%2B%C2%A0nums%5Bj%5D%C2%A0%3D%3D%C2%A0target)%C2%A0%7B%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0res%5B0%5D%C2%A0%3D%C2%A0i%3B%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0res%5B1%5D%C2%A0%3D%C2%A0j%3B%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0break%3B%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%7D%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%7D%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%7D%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0return%C2%A0res%3B%0A%C2%A0%C2%A0%C2%A0%C2%A0%7D%0A%7D%0A%60%60%60%0A%0A%23%23%23%23%20%E9%A2%98%E8%A7%A3%202%0A%0A%60%60%60java%0Aclass%C2%A0Solution%C2%A0%7B%0A%C2%A0%C2%A0%C2%A0%C2%A0public%C2%A0int%5B%5D%C2%A0twoSum(int%5B%5D%C2%A0nums%2C%C2%A0int%C2%A0target)%C2%A0%7B%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0Map%3CInteger%2C%C2%A0Integer%3E%C2%A0map%C2%A0%3D%C2%A0new%C2%A0HashMap%3CInteger%2C%C2%A0Integer%3E()%3B%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0int%5B%5D%C2%A0res%C2%A0%3D%C2%A0new%C2%A0int%5B2%5D%3B%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0for(int%C2%A0i%C2%A0%3D%C2%A00%3B%C2%A0i%C2%A0%3C%C2%A0nums.length%3B%C2%A0i%C2%A0%2B%2B)%C2%A0%7B%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0map.put(nums%5Bi%5D%2C%C2%A0i)%3B%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%7D%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0for(int%C2%A0i%C2%A0%3D%C2%A00%3B%C2%A0i%C2%A0%3C%C2%A0nums.length%3B%C2%A0i%C2%A0%2B%2B)%C2%A0%7B%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0int%C2%A0tmp%C2%A0%3D%C2%A0target%C2%A0-%C2%A0nums%5Bi%5D%3B%20%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0if(map.containsKey(tmp)%C2%A0%26%26%C2%A0map.get(tmp)%C2%A0!%3D%C2%A0i)%C2%A0%7B%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0res%5B0%5D%C2%A0%3D%C2%A0i%3B%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0res%5B1%5D%C2%A0%3D%C2%A0map.get(tmp)%3B%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0break%3B%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%7D%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%7D%0A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0return%C2%A0res%3B%0A%C2%A0%C2%A0%C2%A0%C2%A0%7D%0A%7D%0A%60%60%60%0A%0A
posted @ 2020-02-03 18:10  tumint  阅读(89)  评论(0)    收藏  举报