import java.util.HashMap; public class DoubleSum { public static void main(String[] args) { int[] test = {6,7,5,4,9,8}; int goals = 13; doubleSum(test,goals); separate(); doubleSum2(test,goals); } //算法一:暴力算法 public static void doubleSum(int[] array,int goal){ for (int i = 0; i < array.length; i++) { int temp = goal - array[i]; for (int j = i+1; j < array.length; j++) { if(array[j]==temp) { System.out.println("["+i+","+j+"]"); } } } } //散列算法 public static void doubleSum2(int[] array,int goal){ HashMapmap = new HashMap (); for (int i = 1; i < array.length ; i++) { map.put(array[i],i); } for (int i = 0; i < array.length-1; i++) { int temp = goal - array[i]; if(map.get(temp)!=null && map.get(temp)>i){ System.out.println("["+i+","+map.get(temp)+"]"); } } } public static void separate(){ System.out.println(); System.out.println("--------------------------"); } }
这一串代码暂时没考虑重复问题
结果:
上面是测试用
下面是Leetcode通过测试代码段源代码:
//Leetcode 通过样式 class Solution { public int[] twoSum(int[] nums, int target) { HashMapmap = new HashMap (); for (int i = 1; i < nums.length ; i++) { map.put(nums[i],i); } for (int i = 0; i < nums.length-1; i++) { int temp = target - nums[i]; if(map.get(temp)!=null && map.get(temp)>i){ return new int[]{i,map.get(temp)}; } } return new int[]{}; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)