leecode系列--Two Sum

Posted 李 鹏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leecode系列--Two Sum相关的知识,希望对你有一定的参考价值。

学习这件事在任何时间都不能停下。准备坚持刷leecode来提高自己,也会把自己的解答过程记录下来,希望能进步。

Two Sum

Given an array of integers, return indices of the two numbers such that they add up to a specific target.

You may assume that each input would have exactly one solution.

Example:

Given nums = [2, 7, 11, 15], target = 9,

Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].

 

 题的大意呢就是给你一个整形数组和目标数字,返回两个数字的索引使得这两个数字的和为目标数字:

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

 算法很简单,维护一个map key来存储数组的每一个值和对应在数组中的索引位置,循环数组,获取当前值,如果map中已经包含满足的数字返回这个两个的索引,如果没有,把当前的数值放在map中去。

其中时间复杂度为0(N)

空间复杂度为0(N)

源码地址github

技术学习交流群:226704167,一起进步。

以上是关于leecode系列--Two Sum的主要内容,如果未能解决你的问题,请参考以下文章

LeeCode——Combine Two Tables

2 Add Two Numbers LeeCode

LeeCode(No2 - Add Two Numbers)

LeeCode(No4 - Median of Two Sorted Arrays)

12行代码AC-Leecode 598. 范围求和 II——Leecode每日一题系列

18行代码AC-Leecode 299. 猜数字游戏——Leecode每日一题系列