java最长递增子序列_JAVA最长递增子序列「建议收藏」

java最长递增子序列_JAVA最长递增子序列「建议收藏」问题描述LIS(LongestIncreasingSubsequence,最长递增子序列):给出一个序列a1,a2,a3,a4,a5,a6,a7…an,求它的一个子序列(设为s1,s2,…sn),使得这个子序列满足这样的性质,s1最长递增子序列实例分析17359481最长递增子序列算法设计设b[i]是在a[i]为单调递增子序列最后一个元素时,所得最长单调递增…

大家好,又见面了,我是你们的朋友全栈君。

问题描述  LIS(Longest Increasing Subsequence,最长递增子序列):给出一个序 列a1,a2,a3,a4,a5,a6,a7…an,求它的一个子序列(设为s1,s2,…sn),使得这个 子序列满足这样的性质,s1

最长递增子序列

实例分析 1 7 3 5 9 4 8 1

最长递增子序列

 算法设计  设b[i]是在a[i]为单调递增子序列最后一个元素时,所得最长单调递增子序列 的长度

  

 

i)j1a[i]if(a[j] 1max(b[j]) 1)if(i 1

b[i]

最长递增子序列

 算法设计  a数组存储原始数据  b数组存储对应最长上升子序列长度

i 1 2 3 4 5 6 7 a[i] 1 7 3 5 9 4 8 b[i]初始值 1 1 1 1 1 1 1 b[i] 1 2 2 3 4 3 4

最长序列长度

1 7 3 5 9 4 8

i 1 2 3 4 5 6 7“

a[i] 1 7 3 5 9 4 8

b[i] 1 2 2 3 4 3 4

pre[i] 0 1 1 3 4 3 6

package book;

import java.util.Scanner;

public class 最长公共子序列 {

static int n;

static int a[];//原始数据

static int b[];//存放最长的序列长度

static int c[];//

static int pre[];//存放前一个数据编号

static int max;

static int lab;//存储最长子序列的最后一个元素的位置

public static void main(String[] args) {

Scanner sc=new Scanner(System.in);

n=sc.nextInt();

a=new int[n+1];

b=new int[n+1];

c=new int[n+1];

pre=new int[n+1];

for(int i=1;i<=n;i++) {

a[i]=sc.nextInt();

}

slove();

System.out.printf(“%d\n”,max);

//输出数列O(n)

for(int i=1;i<=max;i++) { System.out.printf(“%d,”,c[i]); }

}

private static void slove() {

b[1]=1;//第一个数字本身长度为1;

for(int i=2;i<=n;i++) {

max=0;

for(int j=i-1;j>=1;j–) {

if(a[j]max) {

max=b[j];//要这个数的关键是

pre[i]=j;

}

}

b[i]=max+1;

}

max=b[1];

for(int i=2;i<=n;i++) {

if(b[i]>max) {

max=b[i];

lab=i;

}

}

int i=lab;

int num=max;

int j=max;

//将a数组复制到c数组

while(num>0) {

c[j]=a[i];

j–;

i=pre[i];

num–;

}

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/132191.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 智能优化算法:鲸鱼优化算法-附代码

    智能优化算法:鲸鱼优化算法-附代码智能算法:鲸鱼优化算法-附代码文章目录智能算法:鲸鱼优化算法-附代码1.算法原理1.1包围猎物1.2狩猎行为1.3搜索猎物1.4算法流程2.算法结果:参考文献:摘要:鲸鱼优化算法(whaleoptimizationalgorithm,WOA)是2016年由澳大利亚格里菲斯大学的Mirjalili等提出的一种新的群体智能优化算法,其优点在于操作简单,调整的参数少以及跳出局部最优的能力强。1.算法原理鲸鱼优化算法(whaleoptimizationalgorithm,WOA)是

  • springmvc向后端传值_在j2ee中,使用servlet过滤器时

    springmvc向后端传值_在j2ee中,使用servlet过滤器时如题,这个是以前做的笔记,现在搬到博客上……packagecom.ruide.action;​importjava.util.HashMap;importjava.util.Ma

  • 查看laravel版本

    查看laravel版本

    2021年10月20日
  • js中三种弹出框[通俗易懂]

    js中三种弹出框[通俗易懂]javascript的三种对话框是通过调用window对象的三个方法alert(),confirm()和prompt()来获得,可以利用这些对话框来完成js的输入和输出,实现与用户能进行交互的js代码

  • 解决 js 报错 xxx is not defined「建议收藏」

    解决 js 报错 xxx is not defined「建议收藏」报错信息:UncaughtReferenceError:xxxisnotdefined处理该问题从下面几个方面入手:检查xxx的js文件是否已经引入到该页面检查xxx的js文件的路径是否有问题检查xxx的js文件的引用顺序检查js代码写的是否有问题范例:报错:UncaughtReferenceError:laytpl…

  • 信道和带宽_信道带宽怎么计算

    信道和带宽_信道带宽怎么计算信道和带宽在用cmw500测试不同band下的throughput时,发现module在某几个band注册不上小区。后来经过同事顺滑的演示,得知是因为不同band支持不同的带宽,而我一直设置cmw500的Cellbandwidth=20MHZ,对于那些最大只支持10MHZ的band自然注册不上。关于不同Band支持的带宽可以参考下表(3GPPTS36.101V17.2.0(2021-06))Table5.6.1-1:E-UTRAchannelbandwidth结尾处分享一

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号