排好序的数组中,找出两数之和为m的所有组合

public static void main(String[] args) {
		int[] a = {1,2,2,3,3,4,5,6};
		int m = 6;
		normal(a, m);
	}
	//正确思路
	

  

private static void normal(int[] a, int m) {
		Map<Integer,Integer> b = new HashMap<Integer, Integer>();
		for(int i = 0;i < a.length;i++) {
			for(int j = 0;j<a.length;j++) {
				if(i!=j&&(a[i]+a[j]==m)) {
					if(a[i]>=a[j]) {
						b.put(a[i], a[j]);
					} else {
						b.put(a[j], a[i]);
					}
					break;
				}
			}
		}
		for(int t : b.keySet()) {
			System.out.println(t+","+b.get(t)+";");
		}
	}

  

posted @ 2019-08-27 15:08  奋小斗g  阅读(623)  评论(0编辑  收藏  举报