首页 > 其他 > 详细

1. 两数之和 - LeetCode

时间:2021-01-14 20:21:37      阅读:29      评论:0      收藏:0      [点我收藏+]

1. 两数之和

题目链接

最直接的方法

class Solution {
   public int[] twoSum(int[] nums, int target) {
       for(int i = 0; i < nums.length; i++){
           for(int j = i + 1; j < nums.length; j++){
               if(nums[i] + nums[j] == target){
                   return new int[]{i, j};
              }
          }
      }
       return null;
  }
}

使用Map

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

这里使用HashMap进行一个映射。每到一个数nums[i],我们需要找对应的target - nums[i],那么我们就把target - nums[i]存成key,以后出现这个数,就能在map中找到。当然,因为要输出下标,就把value设置成下标。


数组的初始化

以int类型为例

int[] intArray = new int[3]{1, 2, 3};

注意以下几点:

  1. new后面要写清楚数组长度

  2. 初始化的值用大括号{}括起来

1. 两数之和 - LeetCode

原文:https://www.cnblogs.com/xiafrog/p/14278892.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!