天天看點

找出一堆整數中兩個元素和為指定值的所有組合

問題描述

5, 5,-7, 5, 9, -1, 5, 1, 9, 4, 6 這堆數中兩個數的和為10的組合有:5+5, 9+1, 4+6,如何快速的找出這樣的組合?

假定

數組a[]存放元素,數組大小為len_a

指定和為aim

思路一

先排序,low=0(最低位置),up=len_a(最高位置)

當a[low]+a[up]>aim時,hig=high-1

當a[low]+a[up]<aim時,low=low+1

當a[low]+a[up]=aim時,輸出a[low]、a[up]

代碼:

找出一堆整數中兩個元素和為指定值的所有組合
找出一堆整數中兩個元素和為指定值的所有組合

思路二

思路:

找出一堆整數中兩個元素和為指定值的所有組合
找出一堆整數中兩個元素和為指定值的所有組合

問題擴充

已知兩個升序數組,從兩個數組中各取一個數值,求使得兩個數之和為給定值的所有組合。

問題本質和一位數組一樣,一個從一個數組的開始前進,一個從另外一個數組的最後後退。

找出一堆整數中兩個元素和為指定值的所有組合

本文轉自jihite部落格園部落格,原文連結:http://www.cnblogs.com/kaituorensheng/p/3171953.html,如需轉載請自行聯系原作者

繼續閱讀