专栏首页时光笔记查找数组中两数之和等于指定的数

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

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

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

穷举法

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

使用冒泡遍历

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

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

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;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java - 游戏内存外挂

    什么是游戏外挂? 试想场景,在玩游戏时,没有得到良好的游戏体验,加之玩游戏的这位又是偏激之人,此时心生愤怒,但通过自己的游戏技术,又无法得到发泄。所以很无奈,只...

    Melody132
  • DIY四轴无人机(三、简单试飞,结果出乎意料)

    根据上一篇的构想,四个电机以相同油门量可以实现垂直起飞,这篇就开始最刺激的环节,买零件做实验。零件买了很多,得有大几百块:

    Melody132
  • Typecho 的使用感受

    在逛博友的博客时,偶然间发现一款博客程序Typecho,然后就逛其官网与百度评论,首先吸引我的就是简洁、轻量、生态也不错,像主题、插件、文档这些东西都应有尽有。...

    Melody132
  • 【LeetCode】两数之和

    Jacob丶
  • 【LeetCode】两数之和

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

    弗兰克的猫
  • 【LeetCode】136. Single Number

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    韩旭051
  • 【LeetCode】找出数组中重复的数字day01

    居士
  • 剑指Offer题解

    在一个长度为n+1的数组里的所有数字都在1~n的范围内,所以数组中至少存在一个数字是重复的。 请找出数组中任意一个重复的数字,但不能修改输入的数组。 例如输...

    星如月勿忘初心
  • 哈希表-LeetCode 217、219、220、232(hashset、hashmap)

    给定一个整数数组,判断是否存在重复元素。 如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。

    算法工程师之路
  • LeetCode第二天&第三天

    leetcode 第二天 2017年12月27日 4.(118)Pascal's Triangle ? JAVA class Solution { pu...

    郭耀华

扫码关注云+社区

领取腾讯云代金券