LeetCode-第一题:Two Sum

题目

LeetCode-第一题:Two Sum_第1张图片
题目

题目的意思是在一个整形数组中查找连个数字,使其和等于给定的目标。并返回给出这两个数出现的位置。

分析

初读题目会想到直接使用两层遍历的办法,但是一到两层遍历就会时间复杂度增加。其实可以考虑使用映射的方法,将映射的键设置为值,将映射的值设置为该值在映射中出现的位置。这样做的目的在于映射的查找时间为常数,查找到数的位置相当快,具体的逻辑见代码。

代码

下面的代码表示使用双层循环得到的答案。

public int[] twoSum(int[] nums, int target)
{
    int arraySize=nums.length;
    for(int i=0;i

下面的代码表示使用映射结构实现的代码。

public int[] twoSum(int[] nums, int target)
{
    int arraySize=nums.length;
    HashMap map=new HashMap();
    for(int i=0;i

你可能感兴趣的:(LeetCode-第一题:Two Sum)