首页 > 其他 > 详细

leetcode1:两数之和

时间:2020-08-13 00:11:18      阅读:75      评论:0      收藏:0      [点我收藏+]

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

==============================Go===============================

func twoSum(nums []int, target int) []int {
    m := map[int]int{}
    for ind, num := range nums {
        if v, ok := m[num]; ok{
            return []int{ind, v}
        } else {
            m[target - num] = ind
        }
    }
    return nil
}
------------------------
func twoSum(nums []int, target int) []int {
    result := []int{}
    m := make(map[int]int)
    for i, k := range nums {
        if value, exist := m[target - k]; exist {
            result = append(result, value)
            result = append(result, i)
        }
        m[k] = i
    }
    return result
}

 

=================================Python============================

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        dic = {}
        for ind, val in enumerate(nums):
            if val in dic:
                return [dic[val], ind]
            else:
                dic[target - val] = ind

 

================================Java============================

class Solution {
    public int[] twoSum(int[] nums, int target) {
        HashMap<Integer, Integer> map = new HashMap<>();
        int[] result = new int[2];
        for (int i = 0; i < nums.length; i++){
            if (map.get(nums[i]) != null) {
                result[0] = map.get(nums[i]);
                result[1] = i;
            }else {
                map.put(target - nums[i], i);
            }
        }
        return result;
    }
}

 

leetcode1:两数之和

原文:https://www.cnblogs.com/liushoudong/p/13493491.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!