using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LPS
{
class Program
{
static void Main(string[] args)
{
int[] pre = { 9, 2, 3, 4, 5, 6 };
int[,] rec = new int[pre.Length, pre.Length];
Lps lps = new Lps(rec, pre.Length, pre);
lps.Lps_initial();
lps.Lps_length();
rec = lps.Record;
int [] res = res = lps.generate ();
for (int i = 0; i < pre.Length; i++)
{
for (int j = 0; j < pre.Length; j++)
{
Console.Write("{0} ", rec[i, j]);
}
Console.Write("\n");
}
for (int i = res[0]; i <= res[1];i++ )
Console.Write("{0} ",pre[i]);
Console.ReadKey();
}
}
class Lps
{
public Lps(int [,] record,int x,int [] origin)
{
Record = record;
Length = x;
OriginSeq = origin;
}
public int[,] Record
{
get;
set;
}
public int Length
{ set; get; }
public int[] OriginSeq
{ get; set; }
public void Lps_initial()
{
for (int i = 0; i < Length; i++)
{
for (int j = 0; j < Length; j++)
{
if (i == j)
Record[i, j] = 1;
else
Record[i, j] = 0;
}
}
}
public void Lps_length()
{
for (int l = 2; l <= Length; l++)
{
for (int i = 0; i < Length - l + 1; i++)
{
int j = i + l - 1;
if (Record[i, j - 1] == 0)
Record[i, j] = 0;
else if (OriginSeq[j - 1] < OriginSeq[j])
Record[i, j] = Record[i, j - 1] + 1;
else
Record[i, j] = 0;
}
}
}
public int[] generate()
{
int temp=0;
int [] rec = {0,0};
for (int i = 0; i < Length; i++)
{
for (int j = 0; j < Length; j++)
{
if (Record[i, j] > temp)
{
temp = Record[i, j];
rec[0] = i;
rec[1] = j;
}
}
}
return rec;
}
}
}
相关推荐
【信息科学与工程学】计算机科学与自动化——第三百零五篇 计算机系统中的各类运算操作01
编号类型领域运算操作运算类型算法算法的详细设计及数学分析参数列表及参数的数值设计应用场景 (100+条)集合运算1集合运算关系代数并集 (Union)集合运算归并排序去重合并两个集合,去除重复元素。时间复杂度 O(n+m),n,m为两集合大小。输入:集合A, B。输出:A∪B。数据集成、多表结果合并、去重后的全量数据提取。2集合运算关系代数交集 (Intersection)集合运算哈希交集找出同时属于两个集合的元素。平均时间复杂度 O(min(n,m)),最坏 O(n*m)。输入:集合A, B。输出:A∩
最长单调递增子序列的三种解法
从报名蓝桥杯开始我就觉得我走入了一条及其坑的路。 从大一到大三我写过的代码,思考过的算法真是少之又少,一个动态规划我依旧没有吃透,真的是觉得好有挫败感。不过还好,一点点来。 既然知道自己要去做这件事情,就认真去做吧。就算开始的比较晚但是能学到东西就很好。 这是转载自爱天涯技术论坛。http://qiemengdao.iteye.com/blog/1660229 解释
周立功CAN盒二次开发实录:用QT5.1.0解析汽车CAN报文(附数据可视化技巧)
本文详细介绍了基于QT5.1.0和周立功USBCAN-E-U设备进行汽车CAN总线二次开发的实战过程。核心内容包括利用CANdb++数据库解析原始报文并转换为物理值,以及通过QCustomPlot库实现高性能实时数据可视化,为车载诊断与车联网开发提供了一套完整的工程实践方案。
最长递增子串(LIS)
给定一个序列,要求求出该序列的最长单调子序列, 即 longest increasing subsequence,这是一个经典的动态规划求解问题。 设给定序列为 a[],大小为 n,如何求其最长单调子序列呢?考虑将最长单调子序列的长度作为所求的最优值,最长单调子序列必定以序列a[]中的某一个元素结尾。 设序列count[i]为以a[i]结尾的最长单调子序列的长度,那么a[]的LIS的长度...
RH850_U2A系列HSM安全核开启但是固件未烧录导致无法启动也无法再烧入固件废板问题分析解决
hsm核导致的安全锁死补救方案
CentOS校园网Web Portal认证自动化实战
Web Portal认证是一种基于HTTP重定向与表单提交的强制网络准入机制,其原理是网关劫持未认证流量并跳转至登录页,验证通过后通过Cookie维持会话授权。该技术广泛应用于高校、机场、酒店等场景,核心价值在于细粒度访问控制与用户身份绑定。典型应用包括Linux命令行环境下的校园网接入、无GUI设备的自动联网、以及实验室集群的集中认证管理。本文聚焦CentOS系统,深入解析curl、cookie持久化、动态表单参数提取等关键技术环节,提供可调试、可复现、可工程化的完整认证流水线。
最长递增子序列(Longest Increase Subsequence)
问题 给定一个长度为N的数组,找出一个最长的单调自增子序列(不一定连续,但是顺序不能乱)。例如:给定一个长度为6的数组A{5, 6, 7, 1, 2, 8},则其最长的单调递增子序列为{5,6,7,8},长度为4. 解决方案: 1,新建一个二维数组ret[ ][ ];以数组A[ ]={2 , 1 , 5 , 9}为例: ~ 2 1 5 9 0 ...
【数据挖掘】心跳信号分类预测 之 特征工程 —— 学习笔记(三)
三、特征工程 3.1 看书 常言道,“巧妇难为无米之炊”。在 ML 中,数据和特征将作“米”,模型和算法则为“妇”。若无数量充足的数据、良好表示的特征,再强大的模型也难以得到满意的结果 (garbage in,garbage out)。对于 ML 问题,数据和特征往往决定了结果的上限,而模型、算法的选择及优化则是在逐步接近该上限。 特征工程,顾名思义,是对原始数据进行一系列工程处理,将其提炼为特征,作为输入供算法和模型使用。在本质上,特征工程是一个表示和展现数据的过程。在实际中,特征工程旨在去除...
贪心算法学习——最长单调递增子序列
最长递增子序列,贪心解法。
用Arduino和8个舵机,从零搭建一台能走路的并联腿机器狗(附完整代码与3D模型)
本文详细介绍了如何用Arduino和8个舵机从零搭建一台能走路的并联腿机器狗,包括硬件准备、结构组装、电路系统搭建、运动算法实现和Arduino编程。通过完整的代码与3D模型,帮助创客深入理解机器人运动原理,实现稳健行走的8自由度机器狗。
STM32入门教程:智能储物柜控制
在这个例子中,我们将使用一个4x4的储物柜,共有16个储物格。我们了解了硬件准备、储物柜电路设计、STM32的基本配置、储物柜控制代码的编写以及测试和调试等方面的知识。根据我们的电路设计,我们需要将一些引脚配置为输出,并将其他引脚配置为输入。在本教程中,我们将使用STM32微控制器来实现一个基本的智能储物柜控制系统。在主函数中,我们将不断循环读取传感器数据,并根据数据的变化来控制储物柜的开关和显示相关信息。这个函数将读取人体感应传感器、温湿度传感器和光照传感器的数据,并将数据存储到相应的变量中。
最长单调递增子序列, 子串和
单调递增最长子序列 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述求一个字符串的最长递增子序列的长度 如:dabdbf最长递增子序列就是abdf,长度为4 输入 第一行一个整数0 随后的n行,每行有一个字符串,该字符串的长度不会超过10000 输出 输出字符串的最长递增子序列的长度 样例输入 3 aaa ababc abklm
第14.8章 高翔博士最新开源框架Lightning-LM源码解读(八):位姿平滑器PoseSmoother深度剖析,从原理到代码实现
本文深度解析了高翔博士开源框架Lightning-LM中的位姿平滑器PoseSmoother模块。该模块通过设置平滑因子,在保证位姿准确性的同时减少突变,使位姿变化更平稳。文章详细讲解了模块功能、数据流程和核心代码实现,包括构造函数、拷贝构造函数以及关键的PushDRPose和PushPose函数。重点分析了位姿平滑算法原理,涉及运动有效性校验、位姿队列维护和平滑因子调节等核心机制。此外还介绍了相关C++语法(如显式构造函数、默认拷贝构造)和优化方向。本解析为SLAM学习者提供了位姿平滑处理的实用实现范例。
最大连续子序列和,乘积,最长递增子串,最长公共子串,子序列等问题(动态规划等)
本文地址:http://blog.youkuaiyun.com/qq_26437925/article/details/52679690对标题问题的整理(题目来源牛客网,leetcode, PAT),可以学习这一类型的编程思路,联想编程,不至于太混乱。最大连续子序列和问题53 . Maximum Subarray(leetcode)题目地址 https://leetcode.com/problems/maxi
华为OD 面试手撕代码真题【判断链表是否有环】
华为OD 面试手撕代码真题【判断链表是否有环】
数学建模模型总结
这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!
动态规划之最长递增子串
题目:给定一个数组,找出其中最长的递增子串的长度。 解析:这个很明显就是使用动态规划来进行求解,依次求解每个位置的最长递增子串的长度,然后依次进行比较。 代码: class Solution { public int lengthOfLIS(int[] nums) { if(nums.length==0) return 0; ...
老版QQ原生表情gif动态
这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。
求最长递增子序列问题
最长递增子序列问题是一个很基本、较常见的小问题,但这个问题的求解方法却并不那么显而易见,需要较深入的思考和较好的算法素养才能得出良好的算法。由于这个问题能运用学过的基本的算法分析和设计的方法与思想,能够锻炼设计较复杂算法的思维,我对这个问题进行了较深入的分析思考,得出了几种复杂度不同算法,并给出了分析和证明。一, 最长递增子序列问题的描述设L=a1,a2,…,an>是n个不同的实数的
文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况
主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。
jre9下载 jdk9
(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】
最长递增子串(LIS)算法_严格单调递增_单调递增_连续_不连续
最长递增子串问题总结 分类 最长递增子串(LIS),可以按照以下两个属性——是否严格单调递增,是否连续,分成四类: 1.(严格单调递增,连续) 2.(非严格单调递增,连续) 3.(严格单调递增,不连续) 4.(非严格单调递增,不连续) 算法: 情况1,2比较简单,一重循环,可以在O(n)的时间内解决 情况3: 对于每一个num[i],搜素停在末尾或者>=num[i]
最长单调递增子序列O(nlogn)
#include "iostream" #include "fstream" using namespace std;/* b[k]表示长度为i的子序列c[i]中,长度为k的最长单调递增子序列的最小结尾元素值 当c[i]>=b[k], k = k + 1; b[k] = a[i] 否则,将c[i]放置到b[]中适当位置 */int b[100]; int c[100];//二分搜索法在b[1,k]中
最长递增子串问题
eg: 一个字符串"1 4 2 3 5",求最长递增子串。 结果为"1 2 3 5"最大递增子串的长度为4 可以采用动态规划的方法来解决这个问题: 我们可以把原问题进行分解,分别求出第1个位置上的递增子串的长度,第2个位置上的xx长度.....第n个位置上的xx长度。。。 不妨设置一个数组longest[len]来存储1~n个位置上递增子串的长度,然后在数组中找出最大的那个数,就是最递增
NYOJ-单调递增最长子序列(两种算法)
单调递增最长子序列 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述求一个字符串的最长递增子序列的长度 如:dabdbf最长递增子序列就是abdf,长度为4 输入第一行一个整数0 随后的n行,每行有一个字符串,该字符串的长度不会超过10000 输出输出字符串的最长递增子序列的长度 样例输入 3 aaa ababc abklm
java最长单调递增子字符串
public class LongestSubString { public static void main(String[] args){ String s = "abcabcdeabcd"; System.out.println(getLengthchar(s)); } public static String getLengthchar(String s){ String s
最长递增子序列
问题 给定一个长度为N的数组,找出一个最长的单调自增子序列(不一定连续,但是顺序不能乱)。例如:给定一个长度为6的数组A{5, 6, 7, 1, 2, 8},则其最长的单调递增子序列为{5,6,7,8},长度为4. 解法1:最长公共子序列法 这个问题可以转换为最长公共子序列问题。如例子中的数组A{5,6, 7, 1, 2, 8},则我们排序该数组得到数组A‘{1, 2, 5, 6, 7,...
求解最长单调递增子串
求解最长递增子串可分为两种情况,即子串连续或非连续。 例如,对于整数串{1,3,5,1,-1,4,5,3,1,8,3,4,6,2,4,6,7,8,6,4} 其连续递增子串为{2,4,6,7,8},非连续递增子串为{{-1},{1},{2,4,6,7,8}} 连续递增子串的求解思路: 采用动态规划思想,令 lengthOfSubList[k]表示子串{list[0]....
NYOJ 单调递增最长子序列
单调递增最长子序列 时间限制:3000ms | 内存限制:65535KB 难度:4 描述求一个字符串的最长递增子序列的长度如:dabdbf最长递增子序列就是abdf,长度为4 输入第一行一个整数0<n<20,表示有n个字符串要处理随后的n行,每行有一个字符串,该字符串的长度不会超过10000输出输出字符串的最长递增子序列的长度样例输入 3 aaa...
1389



被折叠的 条评论
为什么被折叠?



