首页 > 编程语言 > 详细

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

时间:2019-11-14 10:21:59      阅读:95      评论:0      收藏:0      [点我收藏+]
给定一个数组和一个数字,从数组中找到两个元素,这两个元素的和等于给定的数字
要求返回两个元素的下角标,比如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;
    }

 

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

原文:https://www.cnblogs.com/junehozhao/p/11854865.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!