java数组算法

ziyoudefengf 2018-06-23 10:52:45
定义有数组int[n] a = {1,2,3,3,4,2,1,5,6,....},数组a中的数均为正整数,当满足a[i]+a[t] = a[x]时,其中,i、t、x均为正数,且≤ n,
求最大的a[x]。
...全文
260 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
luning0526 2018-06-25
  • 打赏
  • 举报
回复
for(int i=0;i<arr1.length;i++){
for(int j=i+1;j<arr1.length-1;j++){
if(arr1[i]<arr1[j]){
int t=arr1[i];
arr1[i]=arr1[j];
arr1[j]=t;
}
}
}
System.out.println("最大arr[x]为:"+arr1[0]);
luning0526 2018-06-25
  • 打赏
  • 举报
回复
int[n] arr = {1,2,3,3,4,2,1,5,6}//随便写数组
int[]arr1=new int[n];
int y=0;
for(int i=0,i<arr.length,i++){
for(int t=0,t<arr.length,t++){
for(int x=0,x<arr.length,x++){
if(arr[x]=arr[i]+arr[t]){
arr1[y]=arr[x];
y++;
}
}
}
}
}
//将数组中arr[x]=arr[i]+arr[t]成立的arr[x]存入新arr1[]中
luning0526 2018-06-25
  • 打赏
  • 举报
回复
关键在于a[i]+a[t] = a[x];楼上好像没理解楼主,因为arr[x]要满足条件后,未必是数组中最大的arr[n-1];
如果itx可以相同,上面方法没问题.如果必须是数组中三个不同的数,改下条件,t=i+1,x=t+1;.......类似冒泡排序的思路.
yjsl__ 2018-06-24
  • 打赏
  • 举报
回复
数组是已知的吧,
就是在数组中找最大值,要求存在i,j小于n,使得a[i]+a[j]=最大值
那就先排序(不排序也没关系,多一层循环找最大值)
数组中一个一个值挑出来,再2重循环看看能不能找到a[i]+a[j]=最大值
verejava 2018-06-24
  • 打赏
  • 举报
回复
冒泡排序 后求最大值

数据结构算法 之 冒泡排序算法

http://www.verejava.com/?id=17276395904973
八位比特 2018-06-23
  • 打赏
  • 举报
回复
引用 2楼我是你的主体 的回复:
.......
怎么难道不对了么?编程重要的是思想。处理问题的方法,你或许非要不排序找个这个功能,那我告诉你还是要排序,或者比大小,只不过排序这个方法被封装了。 你非要手写排序的方法再做也行 循环赋值,循环比较在你这里终归会归结于排序方法。 本质还是要排序的,本质还是要比大小的。 只不过方法被封装了你觉得简单,实际上没这个方法你不还是要做循环比大小的事么
ziyoudefengf 2018-06-23
  • 打赏
  • 举报
回复
.......
八位比特 2018-06-23
  • 打赏
  • 举报
回复
对数组排升序,最后面两个数相加不就是最大值了?
stacksoverflow 2018-06-23
  • 打赏
  • 举报
回复
首先按从大到小的顺序来排序,然后从左(大)到右(小)遍历,每取出一个元素,依次减去后面的元素,相减结果是否在数组中,如果在返回这个值,结束程序。

50,527

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧