1. 两数之和

最简单的想法就是双指针遍历,两个下标的值相加等于target就可以返回了

class Solution {

    public int[]twoSum(int[] nums,int target) {

        int[] res =new int[2];

        for (int i =0; i < nums.length; i++) {

            for (int j = i +1; j < nums.length; j++) {

                if (nums[j] + nums[i] == target) {

                    res[0] = i;

                    res[1] = j;

                    return res;

                }

            }

        }

        return res;

    }

}

还有一种方法就是用map保存下标的方式,数组的值作为key,下标的值作为value,进行查找

class Solution {

    public int[] twoSum(int[] nums, int target) {

        Map<Integer,Integer> map=new HashMap<>();

        for(int i=0;i<nums.length;i++){

            int temp=target-nums[i];

            if(map.containsKey(temp)){

                return new int[]{map.get(temp),i};

            }

            map.put(nums[i],i);

        }

        return null;

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目描述 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回...
    墨落叶阅读 349评论 0 0
  • 难度:简单 题目: 给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数...
    阿玥的星星阅读 197评论 0 0
  • 题目 给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 的那两个整数,并返...
    陶特斯阅读 174评论 0 0
  • 执行用时:512 ms, 在所有C#提交中击败了35.05%的用户 内存消耗:31.2 MB, 在所有C#提交中击...
    平邑双语幼儿园第一中单阅读 68评论 0 0
  • class Solution {private Map map = new HashMap (); publi...
    Rondo9阅读 180评论 0 0