美文网首页工作生活
数组 / 两数之和

数组 / 两数之和

作者: 原创迷恋者 | 来源:发表于2019-07-04 12:33 被阅读0次

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

算法的本质特征是通用,因此,若非不得已,不要分类讨论。我之前尝试过一种分类的做法,即先将数组进行排序,然后判断target与其中数字的大小关系。然而这样做的隐患是,你还需要判断数组中是否存在负数,如果存在,则操作流程又不同了。此外,分散会更容易出错,因为思维更容易存在漏洞。因此,算法应该追求通用的流程,而不是分散。

话说回来,此题最通用的方法就是,也不用排序,直接嵌套遍历,第一重遍历从第一个数开始遍历到最后一个数,第二重遍历从i开始往后,寻找target-nums[i],找到就返回,找不到就继续循环。

代码如下:

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

相关文章

  • 两数之和(golang)

    原题:两数之和 关联:两数之和 II - 输入有序数组(golang)两数之和 IV - 输入 BST(golang)

  • 两数之和 II - 输入有序数组(golang)

    原题:两数之和 II - 输入有序数组 关联:两数之和(golang)两数之和 IV - 输入 BST(golan...

  • 数组 / 两数之和

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

  • 数组——两数之和

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

  • 数组-两数之和

  • 数组--两数之和

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

  • leetcode top100

    1.求两数之和(数组无序) 2.求电话号码的字母组合 3.三数之和 4.两数之和(链表)

  • C语言第六次作业:动态申请内存

    动态申请内存 1. 两数之和 数组二重循环\哈希表 167. 两数之和 II - 输入有序数组数组二重循环\首尾指...

  • LeetCode 专题 :双指针

    LeetCode 第 167 题:两数之和 II - 输入有序数组 传送门:167. 两数之和 II - 输入有序...

  • LeetCode 第18题:四数之和

    1、前言 2、思路 采用三数之和的思路,原本三数之和可以分解为:数组中的一个数 + 此数右边的数求两数之和,那么四...

网友评论

    本文标题:数组 / 两数之和

    本文链接:https://www.haomeiwen.com/subject/sdjlhctx.html