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–;

}

}

}

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • kubernetes杂谈(一)清除状态为Evicted的pod

    kubernetes杂谈(一)清除状态为Evicted的pod一现象引入使用’kubectlgetpods–all-namespaces’,发现很多’pod的状态为evicted’原因eviction,即’驱赶的意思’,意思是当节点出现异常时,kubernetes将有’相应的机制驱赶’该节点上的Pod,多见于资源不足时导致的驱赶。注意:即使集群’状态恢复’,eviction状态的pod会’在系统中存在’,需要’手动删除’–>只是影响美观解决方案排查’资源和异常原因’,防止新的驱赶产生–&g..

    2022年5月16日
    43
  • ie浏览器activexobject_ie8 object.defineproperty

    ie浏览器activexobject_ie8 object.defineproperty切记:ActiveX是微软的东西,故而这玩意儿只有IE才支持!JavaScript中ActiveXObject对象是启用并返回Automation对象的引用,javaScript中利用ActiveXObject来创建FileSystemObject操作文件。一、功能实现核心:FileSystemObject对象要在javascript中实现文件操作功能,主要就是依

    2022年10月11日
    3
  • UVA11100- The Trip, 2007

    UVA11100- The Trip, 2007

    2021年9月8日
    49
  • Java Set集合的详解

    Java Set集合的详解一,SetSet:注重独一无二的性质,该体系集合可以知道某物是否已近存在于集合中,不会存储重复的元素用于存储无序(存入和取出的顺序不一定相同)元素,值不能重复。对象的相等性  引用到堆上同一个对象的两个引用是相等的。如果对两个引用调用hashCode方法,会得到相同的结果,如果对象所属的类没有覆盖Object的hashCode方法的话,hashCode会返回每个对象特有的序号(j

    2022年6月13日
    29
  • 分布式拒绝服务攻击(DDoS)原理及防范

    分布式拒绝服务攻击(DDoS)原理及防范年 6 月 01 日分布式拒绝服务攻击 DDoS 是目前黑客经常采用而难以防范的攻击手段 本文从概念开始详细介绍了这种攻击方式 着重描述了黑客是如何组织并发起的 DDoS 攻击 结合其中的 SynFlood 实例 您可以对 DDoS 攻击有一个更形象的了解 最后作者结合自己的经验与国内网络安全的现况探讨了一些防御 DDoS 的实际手段 DDoS 攻击概念 DoS 的攻击方式有很多种 最基本的 DoS 攻击就是

    2025年12月13日
    4
  • 睿智的目标检测20——利用mAP计算目标检测精确度「建议收藏」

    睿智的目标检测20——利用mAP计算目标检测精确度「建议收藏」睿智的目标检测20——利用mAP计算目标检测精确度学习前言GITHUB代码下载知识储备1、IOU的概念2、TPTNFPFN的概念3、precision(精确度)和recall(召回率)4、概念举例5、单个指标的局限性什么是AP绘制mAP学习前言好多人都想算一下目标检测的精确度,mAP的概念虽然不好理解,但是理解了就很懂。GITHUB代码下载这个是用来绘制mAP曲线的。https:…

    2022年10月13日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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