欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

3、给定一个数组和一个数字,从数组中找到两个元素,这两个元素的和等于给定的数字

程序员文章站 2022-03-13 12:52:53
...
给定一个数组和一个数字,从数组中找到两个元素,这两个元素的和等于给定的数字
要求返回两个元素的下角标,比如a[1,3,5,7]和数字6,返回index1= 1,index2 = 3
public static int[] sum(int nums[],int tarNum){
        //首先使用哈希map,存储数组的元素和该元素对应的下角标
        HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
        for(int i = 0;i < nums.length; i++){
            map.put(nums[i],i);
        }
        //定义一个长度为2的数组,记录找到的两个元素的位置
        int index[] = new int[2];
        //遍历数组,找到第二个元素的位置
        for(int i = 0;i < nums.length;i++){
            //定义一个数字j,用于记录第二个元素的位置,第一个元素为i不用专门记录
            Integer j = map.get(tarNum - nums[i]);
            //如果j是位于i的后面并且j存在,就把两个元素各加一并返回
            if(j != null && j > i){
                index[0] = i + 1;
                index[1] = j + 1;
            }
        }

        return index;
    }

 

相关标签: 数组算法

推荐阅读