给定一个数组sum,其中数字无重复,给定一个值 sum, 要求输出num中相加和为sum的所有组合

如 :num = {3,2,4,6,8,7,5} sum = 13输出:6 7 8 5要求时间复杂度小于O(n^2)
2025-03-03 07:33:47
推荐回答(3个)
回答1:

int num[]={3,2,4,6,8,7,5};
int sum=13;
int i,j;
for(i=0;i<7;i++)
for(j=i+1;j<7;j++)
if(num[i]+num[j]==sum)
printf("%5d%5d\n",num[i],num[j]);

回答2:

public class add
{public static void main(String args[])
{int[] num={3,2,4,6,8,7,5};
int sum=13;
for(int i=0;i {sum-=num[i];
for(int j=0;j {if(sum==num[j]&&i!=j)
System.out.println(num[i]+" "+num[j]);
}
}
}
}

回答3:

给个邮箱,给你个模板