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,在传入一次得到新数组的最大值,即源数组的次大值。

吐槽

因为一个承诺而疯狂的我,从不复习的我,开始复习了,今日考完感觉不错,没想到我代码多余的那么多,以后要注意了。

标签

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1