当前位置: 首页 > news >正文

算法练习--- DP 求解最长上升子序列(LIS)

问题描述:

对于2,5,3,1,9,4,6,8,7,找出最长上升子序列的个数

最长上升子序列定义:

对于i<j i,j∈a[0...n] 满足a[i]<a[j]



1. 找出DP公式:
dp[i] = dp[j] + 1  (j<i && a[j]<a[i] && dp[i] < dp[j]+1)


2.实现代码


void Main()
{
	DP_LIS();
	Console.WriteLine(dpArr);
}




static int[] arr = new int[9]{2,5,3,1,9,4,6,8,7};
static int n = 9;
static int[] dpArr = new int[9];


static void DP_LIS(){


for(var i= 0;i < n; i++){
dpArr[i] = 1;
for(var j = 0;j < i; j++){
if(arr[j]<arr[i] && dpArr[i] < dpArr[j] + 1){
dpArr[i]  = dpArr[j]+1;
}
}


}


}





dpArr[0...n-1]中,最大的元素即为所求。作为联系,本例打印出了dp数组中的所有元素

相关文章:

  • Bellman ford 最短路径算法
  • ArcGIS Server Java ADF 案例教程 14
  • 扩展MongoDB C# Driver的QueryBuilder
  • ArcGIS Server Java ADF 案例教程 15
  • Floyd-Warshall 算法-- 最短路径(适合节点密集的图)
  • 英雄会创业论坛梁宁主持手记-初创业2人,天才少年2人,成功2人
  • Windows Azure系列-- 配置Azure Power Shell
  • 北京英雄会片段
  • Windows Azure 系列-- Azure Redis Cache的配置和使用
  • 2009 CSDN英雄会记事 - 珍惜时间、规划生活
  • LeetCode -- 删除链表中值为k的元素
  • ArcGIS Server Java ADF 案例教程 16
  • LeetCode --- Count And Say
  • 一个超火的网站“Omegle”
  • LeetCode 格雷码序列的生成
  • [译]前端离线指南(上)
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • 【RocksDB】TransactionDB源码分析
  • Fundebug计费标准解释:事件数是如何定义的?
  • Invalidate和postInvalidate的区别
  • Java 多线程编程之:notify 和 wait 用法
  • java8-模拟hadoop
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • Python利用正则抓取网页内容保存到本地
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 使用agvtool更改app version/build
  • 思考 CSS 架构
  • 小程序开发之路(一)
  • 新版博客前端前瞻
  • 移动端解决方案学习记录
  • 应用生命周期终极 DevOps 工具包
  • ionic异常记录
  • k8s使用glusterfs实现动态持久化存储
  • 通过调用文摘列表API获取文摘
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • $.proxy和$.extend
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (分享)自己整理的一些简单awk实用语句
  • (附源码)计算机毕业设计大学生兼职系统
  • (一)为什么要选择C++
  • (转)EOS中账户、钱包和密钥的关系
  • (转)shell调试方法
  • (转)winform之ListView
  • ******IT公司面试题汇总+优秀技术博客汇总
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .net core 依赖注入的基本用发
  • .Net Core缓存组件(MemoryCache)源码解析