给定一个整数型的数组,和一个特定的整数值。编程求出数组中任两个元素的差等于给定整数值的值对?
如题,自己初步想了下,貌似是一道关于排列组合的问题,不知道有没有更完美的解决方法?
请赐教
给定一个整数型的数组,和一个特定的整数值。编程求出数组中任两个元素的差等于给定整数值的值对?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
6条回答 默认 最新
- qwe_rt 2010-03-23 14:08关注
改进的算法,免去了很多不必要的比较。提高算法的效率,保证了结果的正确性。
[code="java"]import java.util.Arrays;
public class TestClass{
public static void printPairs(int number, int[] list) { if (list.length < 2) return; boolean b = false; Arrays.sort(list); //首先取最大值,看是否存在这样的值对 if(number>(list[list.length-1]-list[0])){ System.out.println("不存在这样的值对"); return; } //下面从第一个元素开始判断,和后面的值做差。如果差值超过number,停止与后面更大的数值比较 for(int i = 0;i<list.length-2;i++)//最后一个元素不用取。 { int j=i; while(number>=(list[j]-list[i])){ if(number==(list[j]-list[i])){ b = true; System.out.println(list[j]+" "+list[i]);} if(++j>list.length-1)break;//和最后一个数组做差,退出。 } } if(!b){System.out.println("不存在这样的值对");} } public static void main(String[] args) { int number = 51; int[] list = { 45, 60, 42, 83, 36, 10, 16, 21, 15 }; printPairs(number, list); }
}
[/code]本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1
悬赏问题
- ¥15 如何在scanpy上做差异基因和通路富集?
- ¥20 关于#硬件工程#的问题,请各位专家解答!
- ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
- ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
- ¥30 截图中的mathematics程序转换成matlab
- ¥15 动力学代码报错,维度不匹配
- ¥15 Power query添加列问题
- ¥50 Kubernetes&Fission&Eleasticsearch
- ¥15 報錯:Person is not mapped,如何解決?
- ¥15 c++头文件不能识别CDialog