最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java求數(shù)組第二大元素示例

 更新時(shí)間:2014年04月16日 09:36:43   作者:  
這篇文章主要介紹了java求數(shù)組第二大元素示例,需要的朋友可以參考下

假設(shè)該數(shù)組所有數(shù)都為非負(fù)整數(shù),且所有數(shù)字都各自不同。

復(fù)制代碼 代碼如下:

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 {
    // 其他情況最大值和第二大值不變,可以畫一個(gè)坐標(biāo)軸
   }
  }

  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));*/

 }

}

相關(guān)文章

  • Springboot集成SSE實(shí)現(xiàn)單工通信消息推送流程詳解

    Springboot集成SSE實(shí)現(xiàn)單工通信消息推送流程詳解

    SSE簡單的來說就是服務(wù)器主動(dòng)向前端推送數(shù)據(jù)的一種技術(shù),它是單向的,也就是說前端是不能向服務(wù)器發(fā)送數(shù)據(jù)的。SSE適用于消息推送,監(jiān)控等只需要服務(wù)器推送數(shù)據(jù)的場景中,下面是使用Spring Boot來實(shí)現(xiàn)一個(gè)簡單的模擬向前端推動(dòng)進(jìn)度數(shù)據(jù),前端頁面接受后展示進(jìn)度條
    2022-11-11
  • 關(guān)于Java中的實(shí)體類要?implements?Serializable的原因分析

    關(guān)于Java中的實(shí)體類要?implements?Serializable的原因分析

    這篇文章主要介紹了Java中的實(shí)體類為什么要?implements?Serializable,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • SpringBoot中實(shí)現(xiàn)Redis?Stream隊(duì)列的代碼實(shí)例

    SpringBoot中實(shí)現(xiàn)Redis?Stream隊(duì)列的代碼實(shí)例

    本文介紹了如何在Spring?Boot中使用Redis?Stream隊(duì)列進(jìn)行消息的生產(chǎn)和消費(fèi),涉及到的主要內(nèi)容包括添加Redis依賴、配置RedisTemplate、創(chuàng)建生產(chǎn)者和消費(fèi)者監(jiān)聽器等,需要的朋友可以參考下
    2024-09-09
  • Java線程操作的常見方法【線程名稱獲取、設(shè)置、線程啟動(dòng)判斷等】

    Java線程操作的常見方法【線程名稱獲取、設(shè)置、線程啟動(dòng)判斷等】

    這篇文章主要介紹了Java線程操作的常見方法,結(jié)合實(shí)例形式總結(jié)分析了java線程的創(chuàng)建、線程名稱的獲取、設(shè)置以及線程啟動(dòng)的判斷等相關(guān)操作實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-10-10
  • 使用MQ消息隊(duì)列的優(yōu)缺點(diǎn)詳解

    使用MQ消息隊(duì)列的優(yōu)缺點(diǎn)詳解

    這篇文章主要介紹了使用MQ消息隊(duì)列的優(yōu)缺點(diǎn)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Java用戶登錄驗(yàn)證代碼

    Java用戶登錄驗(yàn)證代碼

    本文給大家使用java代碼實(shí)現(xiàn)用戶登錄驗(yàn)證功能,當(dāng)用戶輸入三次錯(cuò)誤后,用戶不可以再次登錄的。具體實(shí)現(xiàn)代碼,大家可以參考下本教程
    2016-08-08
  • springboot集成JWT實(shí)現(xiàn)身份認(rèn)證(權(quán)鑒)的方法步驟

    springboot集成JWT實(shí)現(xiàn)身份認(rèn)證(權(quán)鑒)的方法步驟

    本文主要介紹了springboot集成JWT實(shí)現(xiàn)身份認(rèn)證(權(quán)鑒)的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • JAVA8獲取list集合中重復(fù)的元素與獲取去重?cái)?shù)據(jù)實(shí)例

    JAVA8獲取list集合中重復(fù)的元素與獲取去重?cái)?shù)據(jù)實(shí)例

    這篇文章主要給大家介紹了關(guān)于JAVA8獲取list集合中重復(fù)的元素與獲取去重?cái)?shù)據(jù)的相關(guān)資料,在實(shí)際開發(fā)中經(jīng)常會(huì)遇到需要找出(刪除)一個(gè)list中某些元素的屬性相同的元素,需要的朋友可以參考下
    2023-07-07
  • Java創(chuàng)建對象的六種常用方式總結(jié)

    Java創(chuàng)建對象的六種常用方式總結(jié)

    作為Java開發(fā)者,經(jīng)常創(chuàng)建很多對象,你是否知道Java中創(chuàng)建對象有哪些方式呢?下面這篇文章主要給大家介紹了關(guān)于Java創(chuàng)建對象的六種常用方式,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • Java中的Unsafe工具類使用詳解

    Java中的Unsafe工具類使用詳解

    這篇文章主要介紹了Java中的Unsafe工具類使用詳解,Unsafe是jdk提供的一個(gè)直接訪問操作系統(tǒng)資源的工具類(底層c++實(shí)現(xiàn)),它可以直接分配內(nèi)存,內(nèi)存復(fù)制,copy,提供cpu級別的CAS樂觀鎖等操作,需要的朋友可以參考下
    2023-12-12

最新評論

遵义县| 新密市| 大同县| 定安县| 健康| 襄垣县| 寿阳县| 长子县| 朝阳区| 达尔| 太保市| 克什克腾旗| 利辛县| 朝阳市| 邢台市| 北流市| 阳山县| 成武县| 高雄县| 镇平县| 托里县| 剑川县| 庆云县| 宜君县| 兴城市| 石屏县| 互助| 梧州市| 教育| 饶平县| 马边| 广水市| 金昌市| 叶城县| 抚远县| 利津县| 榕江县| 河东区| 建德市| 溆浦县| 北碚区|