定义一个数组最大值和最小值元素互换

一、先理解题义
1、分析
这个编程题的难度是最简单的一个,意思就是把最大值赋值给最小值,把最小值变成最大值,要解这个题首先得定义一个数组,之后呢我们不用遍历把最大值求出来在把最小值求出来,首先要先想着怎么简单怎么来,编程就是以最小的付出,获得最大的回报,我们只需用Arrays里的sort方法排序,先定义数组,然后用排序方法把让数组里的整数内容从小到大1-9排序,然后起始的索引值0就是最小值,排序后最后一个就是最大值了,也就是数组名.length-1,为什么要-1呢,因为索引值是从0开始,而且计算长度是1开始,索引值正好比长度少1所以要-1,如果不减一就索引值越界了,分析完毕之后n那么第二步就是元素转换了,在转换之前我们要先进行分析,他能不能直接:
最大值=最小值 之后
最小值=最大值
这样做是不可以的,因为最大值也是一个可以边的量,他在第一步max=min的时候,已经给最大值重新赋值了一下,赋值成了最小值,这是把最大值转换成了最小值,当然这一步可以成功转换,但是当你最小值转换最大值的时候有没有想过,他已经没有最大值了,因为最大值原来的量已经变了,重新赋值成了最小值,所以第二步 最小值=最大值的时候真是的情况是这个min=min这样并没有成功转换,那么我们该怎么办呢?

2、解决赋值问题
1、这个问题的根源是原来的最大值没了,所以我们在最大值重新赋值之前,设定一个新的变量,让这个新变量tmp附上没转换之前的最大值max,相当于赋值了一份最大值,存储到了新变量里面,然后就这样赋值就可以了:
int tmp=数组名称[数组名称.length-1]
//开始转换,最大值转换成最小值
数组名称[数组名称.length-1]=数组名称[0];
//最小值转换最大值
数组名称[0]=tmp;
这样做就可以了,如果不相信可以用输出语句在转换之前把最大值和最小值输出一遍,然后在最转换之后输出一遍就可以了
二、答案
public class SKT {
public static void main(String[] args) {
int[] a={3,5,1,2,7,108};
Arrays.sort(a);
int sum=a[a.length-1];
a[a.length-1]=a[0];
a[0]=sum;
System.out.println(a[a.length-1]);
System.out.println(a[0]);
}
}
如果上面文本看不清还有图:


image.png

好了,这个题就这么结束了,希望我的思路对大家有帮助,新手上路,且善待。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第四天 数组【悟空教程】 第04天 Java基础 第1章数组 1.1数组概念 软件的基本功能是处理数据,而在处理数...
    Java帮帮阅读 1,616评论 0 9
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 2,869评论 2 9
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,451评论 0 9
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,421评论 0 2
  • 康婷俏侣惜会员, 贻笑大方港澳游。 精心设计举珠宝, 不痛不痒圈购物。 赋闲搁浅龙门栈, 乐享餐盘杯中物。 越山穿...
    老七_13f7阅读 167评论 2 2