网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 java求数组第二大元素
内容
    java求数组第二大元素,假设该数组所有数都为非负整数,且所有数字都各自不同。
    package array;
    public class SecondMaxElem {
    public static int getSecondMaxElem(int[] array) {
    if(array == null || array.length <= 1) {
    return -1;
    }
    int max = array[0] > array[1] ? array[0] : array[1];
    int secMax = array[0] + array[1] - max;
    int len = array.length;
    for(int i = 2; i < len; i++) {
    int cur = array[i];
    if(cur > secMax) {
    secMax = cur;
    if(secMax > max) { // swap
    int temp = secMax;
    secMax = max;
    max = temp;
    }
    }
    }
    return secMax;
    }
    public static int getSecondMaxElem2(int[] array) {
    if(array == null || array.length <= 1) {
    return -1;
    }
    int max = array[0] > array[1] ? array[0] : array[1];
    int secMax = array[0] + array[1] - max;
    int len = array.length;
    for(int i = 2; i < len; i++) {
    int cur = array[i];
    if(cur > max) {
    secMax = max;
    max = cur;
    }
    else if(cur > secMax && cur < max) {
    secMax = cur;
    }
    else {
    // 其他情况最大值和第二大值不变,可以画一个坐标轴
    }
    }
    return secMax;
    }
    public static void main(String[] args) {
    int[] array = new int[] { };
    /*System.out.println("算法1: " + getSecondMaxElem(array));
    System.out.println("算法2: " + getSecondMaxElem2(array));
    array = new int[] { 2 };
    System.out.println("算法1: " + getSecondMaxElem(array));
    System.out.println("算法2: " + getSecondMaxElem2(array));*/
    array = new int[] { 2, 3, 1, 6, 7, 5, 9 };
    System.out.println("算法1: " + getSecondMaxElem(array));
    System.out.println("算法2: " + getSecondMaxElem2(array));
    /*array = new int[] { 1, 2, 3, 3, 4, 5, 5 };
    System.out.println("算法1: " + getSecondMaxElem(array));
    System.out.println("算法2: " + getSecondMaxElem2(array));*/
    }
    }
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/21 17:50:54