算法题笔记
import java.util.HashMap; import java.util.Map; public class ceshi { /**给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]*/ public static void main(String[] args) { int[] nums ={2,7,11,15}; int[] xin={}; int target =9; //先创建一个int类型的map,用来存储,可以用来后面的匹配 Map<Integer,Integer> map=new HashMap<>(); //第一步,开始遍历此数组 for(int i=0;i<nums.length;i++){ //第二步定义一个值,因为结果值为9,9减去当前数值,存入map,当然,首次map里面是空的,所以首次结果 //肯定先存入map,然后就可以利用map的containsKey属性来判断9减去当前值是否存在,存在证明满足公式, //就返回new int[]{map.get(减法得到的结果),i} //否则map.put(n[i],i);--(当前数组遍历到的值,当前数组位置) int a=target-nums[i]; if(map.containsKey(a)){ xin= new int[] {map.get(a),i}; } map.put(nums[i],i); } for(int m=0;m<xin.length;m++){ System.out.println(xin[m]); } } }
JAVA修炼塔,技术世界的探知与交流,欢迎你的加入-----群号:535296702

浙公网安备 33010602011771号