国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

LIS 最長遞增子序列 Java的簡單實現

2019-11-26 13:48:47
字體:
來源:轉載
供稿:網友

今天遇到了一個求最長遞增子序列的問題,看了之后就嘗試著用Java實現了一下,關于什么是最長遞增子序列,這里就不在贅述,可以百度或者Google之,以下為實現的代碼:

說明:本段代碼實現的功能為

(1)隨機生成一個有10個元素的數組,然后輸出它的最長遞增子序列
(2)輸出以其中某一個元素為結尾的最長遞增子序列的長度

具體的實現思路在注釋中已經詳細表明了,比較簡單,這里就不再贅述

import java.util.Arrays;import java.util.Random;public class LIS {  public static void main(String[] args){    System.out.println("generating a random array...");    LIS lis=new LIS();    int[] oldArray=lis.randomArray();    for (int i = 0; i < oldArray.length; i++) {      System.out.print(oldArray[i]+" ");    }    System.out.println();    System.out.println("最長遞增子序列的長度為");    lis.lisGet(oldArray);  }  public int[] randomArray(){    Random random=new Random();    int[] randomArray=new int[10];    for (int i = 0; i < 10; i++) {      randomArray[i]=random.nextInt(10);    }    return randomArray;  }  public void lisGet(int[] arrayL ){    int[] lisLength=new int[arrayL.length];//用于記錄當前個元素作為最大元素的最長遞增序列的長度    for (int i = 0; i < arrayL.length; i++) { //初始化      lisLength[i]=1;    }    int max=1;    for (int i = 1; i < arrayL.length; i++) {      for (int j = 0; j <i; j++) {        if (arrayL[j]<arrayL[i]&&(lisLength[j]+1)>lisLength[i]) {                    lisLength[i]=lisLength[j]+1;        }        if (max<lisLength[i]) { //得到當前最長遞增序列的長度以及該子序列的最末元素的位置          max=lisLength[i];        }            }    }    System.out.println(max);    System.out.println("第i個元素結尾時最長遞增子序列:"+Arrays.toString(lisLength)); //輸出數組  }}

以上就是小編為大家帶來的LIS 最長遞增子序列 Java的簡單實現的全部內容了,希望對大家有所幫助,多多支持武林網~

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南宫市| 绩溪县| 海晏县| 遵义县| 平顺县| 黄浦区| 驻马店市| 永泰县| 武定县| 丹江口市| 儋州市| 云南省| 轮台县| 丰镇市| 黄浦区| 泽普县| 伊金霍洛旗| 阜新| 晋州市| 鄂托克前旗| 星座| 荔浦县| 宜兴市| 陇西县| 铁岭县| 化州市| 行唐县| 吴桥县| 漳州市| 育儿| 娱乐| 定州市| 和静县| 上思县| 九江市| 泰兴市| 原平市| 明光市| 兴宁市| 修武县| 长寿区|