DESKTOP-3L0C5SP_20200829-田福申
日志
问题
今日的编程题里面有一个是求次大数的,使用冒泡等都得不到满分,思考如何满分。
解决
public int show(int[] array) {
int n=array[0];
for(int x=1;x<array.length-1;x++) {
if(n<array[x]) {
n=array[x];
}
}
return n;
}
public static void main(String[] args) {
int[] data= {19,22,98,98,56,77,45,72,0,-1};
IntNubmer i=new IntNubmer();
int max=i.show(data);
for(int x=0;x<data.length-1;x++) {
if(max==data[x]) {
data[x]=0;
}
}
max=i.show(data);
System.out.println(max);
}
先定义一个方法找出传入数组的最大值,第一次调用该方法,得到数组中的最大值,将数组中的最大值全部改成0,在传入一次得到新数组的最大值,即源数组的次大值。
吐槽
因为一个承诺而疯狂的我,从不复习的我,开始复习了,今日考完感觉不错,没想到我代码多余的那么多,以后要注意了。
点赞