快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值,为了简化起见,我们假设这个数组中肯定存在至少一组符合要求的解,算法复杂度<=o(n)。 假如有如下已排好序的数组,如图所示:1,4,5,6,7,8,9 给定Sum= 10
int [] team = new int[7]{1,4,5,6,7,8,9};
int k=0,p=team.length - 1;
for(int i=0;i<team.length;i++)
{
if(team[k]+team[p]==10) break;
if(team[k]+team[p]>10) p--;
if(team[k]+team[p]<10 k++;
}