关闭

1. Two Sum

标签: leetcode
112人阅读 评论(0) 收藏 举报
分类:

题意:给一个无序的数组找出里边两个数的和为指定数的位置

思路:
从头至尾遍历数组,每一次判断hashmap中是否有数值等于位指定数-当前数的项,并把当前项的数值和对应的index放到hashmap中

时间:O(n)
空间:O(n)

public class Solution {
    public int[] twoSum(int[] nums, int target) {
        int[] res = new int[2];
        int n = nums.length;
        HashMap<Integer,Integer> map = new HashMap<Integer,Integer>();
        for(int i=0;i<n;i++)
        {
            int cur = target-nums[i];
            if(map.containsKey(cur))
            {
                res[0] = map.get(cur);
                res[1] = i+1;
                break;
            }
            map.put(nums[i],i+1);
        }
        return res;
    }
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:17024次
    • 积分:578
    • 等级:
    • 排名:千里之外
    • 原创:44篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类