public static void main(String[] args) { //定义一个指定数组 int[] arr = {1,1,1,1,1,1,1,1}; System.out.println("指定你想合成的target: "); int target = new Scanner(System.in).nextInt(); //定义一个接收返回值的数组 int[] arr2 = show(arr,target); //将数组转换成String输出 System.out.println("在arr数组中"+Arrays.toString(arr)+"合成target的两个数的索引为:" + Arrays.toString(arr2)); } public static int[] show(int[] arr,int target){ int[] arr2 = null; //对传入的数组进行判断 if (arr == null || arr.length == 0){ System.out.println("你传入的数组有误,请重新检查你设置的数组"); } //创建一个Map集合对数值进行存储 Map<Integer,Integer> map = new HashMap<>(); for (int i = 0;i < arr.length;i++){ if (map.containsKey(target - arr[i])){ //判断map集合中是否有相同的值 arr2 = new int[]{i,map.get(target - arr[i])}; //将符合合成的值的索引记录下来 } map.put(arr[i],i); //把数组arr里面的数放到集合map里面 } return arr2; //返回数组 }
Java实现两数之和,使用map方法
最新推荐文章于 2024-07-08 00:01:13 发布