前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >查找数组中两数之和等于指定的数

查找数组中两数之和等于指定的数

作者头像
Melody132
发布2020-03-11 18:10:25
1.2K0
发布2020-03-11 18:10:25
举报
文章被收录于专栏:时光笔记时光笔记

题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

举例:给定数组 nums = [1,6,3,7],给定目标值:9,所返回应是6和3下标的数组形势也就是 [1,2]。

穷举法

将数组中的每一对数字相加对比

穷举法
穷举法

使用冒泡遍历

代码语言:javascript
复制
public static int[] twoSum1(int[] nums, int target) {
    for (int i = 0; i < nums.length - 1; i++) {
        for (int j = i + 1; j < nums.length; j++) {
            if (nums[i] + nums[j] == target){
                return new int[]{i,j};
            }
        }
    }
    return null;
}

Map字典法

方法1

字典法1
字典法1
代码语言:javascript
复制
public static int[] twoSum(int[] nums, int target) {
    Map<Integer,Integer> map = new HashMap<>();
    for (int i = 0; i < nums.length; i++) {
        int num = target - nums[i];
        if (map.containsKey(nums[i])){
            return new int[]{map.get(nums[i]),i};
        }
        map.put(num,i);
   }
   return null;
}

方法2

字典法2
字典法2
代码语言:javascript
复制
public static int[] twoSum2(int[] nums, int target) {
    Map<Integer,Integer> map = new HashMap<>();
    for (int i = 0; i < nums.length; i++) {
        int num = target - nums[i];
        if (map.containsKey(num)){
            return new int[]{map.get(num),i};
        }
        map.put(nums[i],i);
    }
    return null;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-02-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 穷举法
  • Map字典法
    • 方法1
      • 方法2
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档