首页 > 代码库 > leecode系列--Two Sum
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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。