zoukankan      html  css  js  c++  java
  • 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,一起进步。

  • 相关阅读:
    box-shadow做出一条线两种颜色
    调取手机摄像头拍照并获取拍得的照片
    PHP请求第三方接口的函数
    PHP mysqli类
    PHP CI框架最近学到的内容
    GE_OG_CALC_COLUMN_EMPTY
    Oracle分区知识
    创建理想的SEQUENCE和自增长的trigger
    Oracle的大数据类型,BIG DATA TYPE
    FOREIGN KEY相关
  • 原文地址:https://www.cnblogs.com/lip0121/p/6229239.html
Copyright © 2011-2022 走看看