当前位置:  首页>> 技术小册>> 数据结构与算法(中)

内容描述

  1. 给定一个整数数组,返回两个数字的索引,使它们相加到一个特定的目标。
  2. 您可以假设每个输入都有一个解决方案,并且不能两次使用同一个元素。
  3. Example:
  4. Given nums = [2, 7, 11, 15], target = 9,
  5. Because nums[0] + nums[1] = 2 + 7 = 9,
  6. return [0, 1].

解题方案

思路 1
**- 时间复杂度: O(N)**- 空间复杂度: O(N)**

  1. class Solution {
  2. public int[] twoSum(int[] nums, int target) {
  3. Map<Integer, Integer> lookup = new HashMap<>();
  4. int[] res = new int[2];
  5. for (int i = 0; i < nums.length; i++) {
  6. if (lookup.containsKey(target - nums[i])) {
  7. res = new int[] { lookup.get(target - nums[i]), i };
  8. break;
  9. } else {
  10. lookup.put(nums[i], i);
  11. }
  12. }
  13. return res;
  14. }
  15. }

该分类下的相关小册推荐: